import { describe, expect, it } from "vitest"; import { aggregateReportPrompt, generateMindMapPrompt } from "./prompts.js"; describe("aggregateReportPrompt", () => { it("包含全部残片和任务名", () => { const messages = aggregateReportPrompt("Java 并发", [ { content: "corePoolSize 是核心线程数" }, { content: "workQueue 满后创建新线程", createdTime: "2026-07-01" }, ]); expect(messages).toHaveLength(2); expect(messages[0].role).toBe("system"); expect(messages[1].content).toContain("Java 并发"); expect(messages[1].content).toContain("corePoolSize"); expect(messages[1].content).toContain("workQueue"); expect(messages[1].content).toContain("2026-07-01"); }); it("有预期时包含预期内容和对比要求", () => { const messages = aggregateReportPrompt( "Java 并发", [{ content: "x" }], "理解线程池核心参数", ); expect(messages[1].content).toContain("理解线程池核心参数"); expect(messages[0].content).toContain("预期"); }); it("无预期时不包含预期块", () => { const messages = aggregateReportPrompt("Java 并发", [{ content: "x" }]); expect(messages[1].content).not.toContain("预期目标"); }); }); describe("generateMindMapPrompt", () => { it("要求输出缩进大纲且包含全部输入", () => { const messages = generateMindMapPrompt( "Java 并发", "并发编程学习", ["报告一"], ["残片一", "残片二"], ); expect(messages[0].content).toContain("缩进"); expect(messages[1].content).toContain("报告一"); expect(messages[1].content).toContain("残片二"); }); });