import { expect, test } from "bun:test";
import { buildAgentPrompt } from "../src/core/prompts.ts";
test("replaces inherited collaboration identity with one child context", () => {
const prompt = buildAgentPrompt(
"Base\nold root\nold child\nold role\nold mode",
{ agentPath: "/root/reviewer", maxConcurrency: 8, maxDepth: 2 },
);
expect(prompt).toContain("Base");
expect(prompt).toContain("You are `/root/reviewer`");
expect(prompt.match(//g)).toHaveLength(1);
expect(prompt).not.toContain("old root");
expect(prompt).not.toContain("old child");
expect(prompt).not.toContain("old role");
expect(prompt).not.toContain("old mode");
});
test("uses the generic role only when no parent prompt exists", () => {
expect(buildAgentPrompt()).toContain("general-purpose coding agent");
expect(buildAgentPrompt("parent role")).toBe("parent role");
});
test("describes transcript-only completion without claiming mailbox delivery", () => {
const prompt = buildAgentPrompt("parent role", {
agentPath: "/root/retained",
maxConcurrency: 8,
maxDepth: 2,
completionDelivery: "none",
});
expect(prompt).toContain("responses remain in this session transcript");
expect(prompt).not.toContain("final response is delivered automatically");
});