feat(P03): multi-project support, NFR milestone versioning, phase context reset, install scripts (v0.3.0)

This commit is contained in:
CI
2026-05-29 15:13:45 +00:00
parent e4bb3a9970
commit ddf04792c7
57 changed files with 1748 additions and 59 deletions
+24
View File
@@ -53,6 +53,22 @@ describe("GitBranch", () => {
expect(result.name).toBe("phase/03-real-time-notifications");
});
it("creates project-prefixed phase branch when projectSlug is set", () => {
const gitBranch = new GitBranch(repoDir, "task-api");
const result = gitBranch.createPhaseBranch(1, "authentication");
expect(result.created).toBe(true);
expect(result.name).toBe("task-api/phase/01-authentication");
});
it("updates project prefix after setProjectSlug", () => {
const gitBranch = new GitBranch(repoDir);
gitBranch.setProjectSlug("auth-svc");
const result = gitBranch.createPhaseBranch(2, "token-rotation");
expect(result.name).toBe("auth-svc/phase/02-token-rotation");
});
});
describe("createMilestoneBranch", () => {
@@ -71,6 +87,14 @@ describe("GitBranch", () => {
const result = gitBranch.createMilestoneBranch("v1.0", "mvp");
expect(result.alreadyExisted).toBe(true);
});
it("creates project-prefixed milestone branch when projectSlug is set", () => {
const gitBranch = new GitBranch(repoDir, "task-api");
const result = gitBranch.createMilestoneBranch("v1.0", "mvp");
expect(result.created).toBe(true);
expect(result.name).toBe("task-api/milestone/v1.0-mvp");
});
});
describe("listPhases", () => {