test: 适配集成测试到新 plan/status API 签名,验证文档依赖状态
This commit is contained in:
@@ -41,10 +41,13 @@ describe("完整 SDD 流程", () => {
|
||||
await writeFile(join(changeDir, "design.md"), "# 用户认证设计\n\n## 背景\n需要用户登录功能");
|
||||
await writeFile(join(changeDir, "task.md"), "- [ ] 实现登录 API\n- [ ] 编写登录测试");
|
||||
|
||||
const changes = await scanChanges(TMP_DIR);
|
||||
const changes = await scanChanges(TMP_DIR, config);
|
||||
expect(changes).toHaveLength(1);
|
||||
expect(changes[0].name).toBe("user-auth");
|
||||
expect(changes[0].taskProgress).toEqual({ completed: 0, total: 2 });
|
||||
expect(changes[0].planCompleted).toBe(true);
|
||||
expect(changes[0].buildUnlocked).toBe(true);
|
||||
expect(changes[0].documents.length).toBeGreaterThan(0);
|
||||
|
||||
const buildPrompt = await assembleBuildPrompt(config, TMP_DIR, changeName);
|
||||
expect(buildPrompt).toContain("实现登录 API");
|
||||
@@ -52,8 +55,10 @@ describe("完整 SDD 流程", () => {
|
||||
|
||||
await writeFile(join(changeDir, "task.md"), "- [x] 实现登录 API\n- [x] 编写登录测试");
|
||||
|
||||
const updatedChanges = await scanChanges(TMP_DIR);
|
||||
const updatedChanges = await scanChanges(TMP_DIR, config);
|
||||
expect(updatedChanges[0].taskProgress).toEqual({ completed: 2, total: 2 });
|
||||
expect(updatedChanges[0].planCompleted).toBe(true);
|
||||
expect(updatedChanges[0].buildUnlocked).toBe(true);
|
||||
|
||||
const buildPrompt2 = await assembleBuildPrompt(config, TMP_DIR, changeName);
|
||||
expect(buildPrompt2).toContain("已完成");
|
||||
@@ -72,7 +77,7 @@ describe("完整 SDD 流程", () => {
|
||||
const archives = await scanArchives(TMP_DIR);
|
||||
expect(archives).toContain(`${today}-${changeName}`);
|
||||
|
||||
const postArchiveChanges = await scanChanges(TMP_DIR);
|
||||
const postArchiveChanges = await scanChanges(TMP_DIR, config);
|
||||
expect(postArchiveChanges).toHaveLength(0);
|
||||
});
|
||||
|
||||
@@ -86,7 +91,7 @@ describe("完整 SDD 流程", () => {
|
||||
await writeFile(join(changeDir, "task.md"), `- [ ] ${name} 任务`);
|
||||
}
|
||||
|
||||
const changes = await scanChanges(TMP_DIR);
|
||||
const changes = await scanChanges(TMP_DIR, config);
|
||||
expect(changes).toHaveLength(2);
|
||||
|
||||
const authPrompt = await assembleBuildPrompt(config, TMP_DIR, "auth");
|
||||
@@ -126,4 +131,25 @@ describe("完整 SDD 流程", () => {
|
||||
expect(config.stages.build).toBeDefined();
|
||||
expect(config.stages.archive).toBeDefined();
|
||||
});
|
||||
|
||||
it("scanChanges 返回文档依赖状态", async () => {
|
||||
await runInit(TMP_DIR, ["opencode"]);
|
||||
const config = await loadConfig(TMP_DIR);
|
||||
|
||||
const changeDir = getChangeDir(TMP_DIR, "dep-test");
|
||||
await mkdir(changeDir, { recursive: true });
|
||||
await writeFile(join(changeDir, "design.md"), "# 设计文档");
|
||||
|
||||
const changes = await scanChanges(TMP_DIR, config);
|
||||
expect(changes).toHaveLength(1);
|
||||
|
||||
const designDoc = changes[0].documents.find((d) => d.name === "design");
|
||||
expect(designDoc).toBeDefined();
|
||||
expect(designDoc!.completed).toBe(true);
|
||||
|
||||
const taskDoc = changes[0].documents.find((d) => d.name === "task");
|
||||
expect(taskDoc).toBeDefined();
|
||||
expect(taskDoc!.completed).toBe(false);
|
||||
expect(taskDoc!.dependMet).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user