feat(KB-648): optimize test execution speed across all packages

- Enable parallel file execution in core, engine, CLI, and dashboard packages via vitest.config.ts

- Optimize backup tests using fake timers instead of real setTimeout delays

- Add test optimization patterns to AGENTS.md documentation (fake timers, parallel execution)

- Add changeset documenting the test speed improvements

- Include test fixes for SettingsModal, engine tests, and git worktree mocks from KB-637
This commit is contained in:
gsxdsm
2026-03-31 22:52:55 -07:00
parent 954bb16cf4
commit 2187d282ad
8 changed files with 95 additions and 37 deletions

View File

@@ -33,6 +33,18 @@ function createMockGlobalSettingsStore() {
};
}
function createMockMissionStore() {
return {
createSession: vi.fn().mockResolvedValue({ id: "session-1", status: "active" }),
getSession: vi.fn().mockResolvedValue({ id: "session-1", status: "active", answers: [] }),
updateSession: vi.fn().mockResolvedValue(undefined),
addAnswer: vi.fn().mockResolvedValue(undefined),
deleteSession: vi.fn().mockResolvedValue(undefined),
listSessions: vi.fn().mockResolvedValue([]),
generatePlan: vi.fn().mockResolvedValue({ plan: "Test plan", steps: [] }),
};
}
function createMockStore(overrides: Partial<TaskStore> = {}): TaskStore {
return {
getTask: vi.fn(),
@@ -63,6 +75,7 @@ function createMockStore(overrides: Partial<TaskStore> = {}): TaskStore {
getWorkflowStep: vi.fn(),
updateWorkflowStep: vi.fn(),
deleteWorkflowStep: vi.fn(),
getMissionStore: vi.fn().mockReturnValue(createMockMissionStore()),
...overrides,
} as unknown as TaskStore;
}
@@ -3665,7 +3678,10 @@ describe("Git Management endpoints", () => {
let store: TaskStore;
beforeEach(() => {
store = createMockStore();
// Use the actual project root so git commands work
store = createMockStore({
getRootDir: vi.fn().mockReturnValue(process.cwd()),
});
});
function buildApp() {

View File

@@ -17,7 +17,7 @@ export default defineConfig({
include: ["app/**/*.test.{ts,tsx}", "src/**/*.test.{ts,tsx}"],
setupFiles: ["./vitest.setup.ts"],
maxWorkers,
fileParallelism: false,
fileParallelism: true,
coverage: {
enabled: false,
reporter: ["text", "html", "json"],