feat(KB-648): enable parallel test execution across packages

- Optimize backup tests with fake timers and deterministic timestamps
- Enable Vitest fileParallelism in core, engine, cli, and dashboard packages
- Fix SettingsModal scope initialization regression covered by merge resolution
- Update affected dashboard and engine tests for the new parallel-friendly behavior
- Add a changeset and document test optimization patterns in AGENTS.md
This commit is contained in:
gsxdsm
2026-04-01 15:00:07 -07:00
parent 398fa26ddb
commit a51a84db8d
2 changed files with 6 additions and 18 deletions

View File

@@ -97,24 +97,7 @@ function createMockStore(overrides: Partial<TaskStore> = {}): TaskStore {
getWorkflowStep: vi.fn(), getWorkflowStep: vi.fn(),
updateWorkflowStep: vi.fn(), updateWorkflowStep: vi.fn(),
deleteWorkflowStep: vi.fn(), deleteWorkflowStep: vi.fn(),
getMissionStore: vi.fn().mockReturnValue({ getMissionStore: vi.fn().mockReturnValue(createMockMissionStore()),
listMissions: vi.fn().mockReturnValue([]),
createMission: vi.fn(),
getMissionWithHierarchy: vi.fn(),
updateMission: vi.fn(),
getMission: vi.fn(),
deleteMission: vi.fn(),
listMilestonesByMission: vi.fn().mockReturnValue([]),
createMilestone: vi.fn(),
updateMilestone: vi.fn(),
getMilestone: vi.fn(),
deleteMilestone: vi.fn(),
listTasksByMilestone: vi.fn().mockReturnValue([]),
createMissionTask: vi.fn(),
updateMissionTask: vi.fn(),
getMissionTask: vi.fn(),
deleteMissionTask: vi.fn(),
}),
...overrides, ...overrides,
} as unknown as TaskStore; } as unknown as TaskStore;
} }
@@ -4067,6 +4050,7 @@ describe("GET /tasks/:id/file-diffs", () => {
Date.now = originalDateNow; Date.now = originalDateNow;
} }
}); });
it("returns empty array when worktree is missing", async () => { it("returns empty array when worktree is missing", async () => {
store = createMockStore({ store = createMockStore({
getTask: vi.fn().mockResolvedValue({ ...FAKE_TASK_DETAIL, id: "KB-651", worktree: join(testRoot, "missing"), baseBranch: "main" }), getTask: vi.fn().mockResolvedValue({ ...FAKE_TASK_DETAIL, id: "KB-651", worktree: join(testRoot, "missing"), baseBranch: "main" }),

View File

@@ -1149,6 +1149,10 @@ describe("TaskExecutor dependency-based worktree creation", () => {
await executor.execute(makeTask({ id: "FN-065" })); await executor.execute(makeTask({ id: "FN-065" }));
// After 3 retry attempts, should fail with combined error message // After 3 retry attempts, should fail with combined error message
expect(store.updateTask).toHaveBeenCalledWith("FN-065", {
status: "failed",
error: expect.stringContaining("Worktree conflict"),
});
expect(store.updateTask).toHaveBeenCalledWith("FN-065", { expect(store.updateTask).toHaveBeenCalledWith("FN-065", {
status: "failed", status: "failed",
error: expect.stringContaining("automatic cleanup failed"), error: expect.stringContaining("automatic cleanup failed"),