This commit is contained in:
ZacharyZhang-NY committed 2026-04-18 22:45:41 -04:00
1 parent 1261c2431f
commit dac59f56c2
680 files changed
+192574

No files matched your search

@@ -0,0 +1,95 @@
import { describe, expect, test } from "vitest";
import { buildSystemPrompt } from "../src/core/system-prompt.js";
describe("buildSystemPrompt", () => {
describe("empty tools", () => {
test("shows (none) for empty tools list", () => {
const prompt = buildSystemPrompt({
selectedTools: [],
contextFiles: [],
skills: [],
});
expect(prompt).toContain("Available tools:\n(none)");
});
test("shows file paths guideline even with no tools", () => {
const prompt = buildSystemPrompt({
selectedTools: [],
contextFiles: [],
skills: [],
});
expect(prompt).toContain("Show file paths clearly");
});
});
describe("default tools", () => {
test("includes all default tools when snippets are provided", () => {
const prompt = buildSystemPrompt({
toolSnippets: {
read: "Read file contents",
bash: "Execute bash commands",
edit: "Make surgical edits",
write: "Create or overwrite files",
},
contextFiles: [],
skills: [],
});
expect(prompt).toContain("- read:");
expect(prompt).toContain("- bash:");
expect(prompt).toContain("- edit:");
expect(prompt).toContain("- write:");
});
});
describe("custom tool snippets", () => {
test("includes custom tools in available tools section when promptSnippet is provided", () => {
const prompt = buildSystemPrompt({
selectedTools: ["read", "dynamic_tool"],
toolSnippets: {
dynamic_tool: "Run dynamic test behavior",
},
contextFiles: [],
skills: [],
});
expect(prompt).toContain("- dynamic_tool: Run dynamic test behavior");
});
test("omits custom tools from available tools section when promptSnippet is not provided", () => {
const prompt = buildSystemPrompt({
selectedTools: ["read", "dynamic_tool"],
contextFiles: [],
skills: [],
});
expect(prompt).not.toContain("dynamic_tool");
});
});
describe("prompt guidelines", () => {
test("appends promptGuidelines to default guidelines", () => {
const prompt = buildSystemPrompt({
selectedTools: ["read", "dynamic_tool"],
promptGuidelines: ["Use dynamic_tool for project summaries."],
contextFiles: [],
skills: [],
});
expect(prompt).toContain("- Use dynamic_tool for project summaries.");
});
test("deduplicates and trims promptGuidelines", () => {
const prompt = buildSystemPrompt({
selectedTools: ["read", "dynamic_tool"],
promptGuidelines: ["Use dynamic_tool for summaries.", " Use dynamic_tool for summaries. ", " "],
contextFiles: [],
skills: [],
});
expect(prompt.match(/- Use dynamic_tool for summaries\./g)).toHaveLength(1);
});
});
});