From 3c25a308d1ffad59b83319936082436adddf879c Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Sat, 18 Jul 2026 02:45:21 -0700 Subject: [PATCH] fix: backup automation mock getGlobalSettingsDir + Claude probes alias FN-7537 manual backup parity needs store.getGlobalSettingsDir after resolveGlobalBackupRoot product drift. Alias dashboard Vitest Claude runtime to probes-entry so API-quality tests do not load ACP index. --- .../src/__tests__/routes-automation.test.ts | 27 ++++++++++++++++--- packages/dashboard/vitest.config.ts | 12 ++++++++- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/packages/dashboard/src/__tests__/routes-automation.test.ts b/packages/dashboard/src/__tests__/routes-automation.test.ts index 0fd70589cf..6a0c1b0d67 100644 --- a/packages/dashboard/src/__tests__/routes-automation.test.ts +++ b/packages/dashboard/src/__tests__/routes-automation.test.ts @@ -230,6 +230,13 @@ function createMockStore(overrides: Partial = {}): TaskStore { updatePrInfo: vi.fn().mockResolvedValue(undefined), updateIssueInfo: vi.fn().mockResolvedValue(undefined), getRootDir: vi.fn().mockReturnValue("/fake/root"), + /* + FNXC:DashboardTests 2026-07-18-09:45: + Backup automation path calls resolveGlobalBackupRoot(store) which requires + getGlobalSettingsDir. Full-suite shard 4 failed FN-7537 manual backup parity + with "store.getGlobalSettingsDir is not a function" after product drift. + */ + getGlobalSettingsDir: vi.fn().mockReturnValue("/fake/global/.fusion"), listWorkflowSteps: vi.fn().mockResolvedValue([]), createWorkflowStep: vi.fn(), getWorkflowStep: vi.fn(), @@ -1402,7 +1409,15 @@ describe("Automation routes", () => { ...FAKE_SCHEDULE, command: "fn backup --create", }); - const store = createMockStore({ getFusionDir: vi.fn().mockReturnValue(fusionDir) } as any); + /* + FNXC:DashboardTests 2026-07-18-09:45: + resolveGlobalBackupRoot reads getGlobalSettingsDir (not getFusionDir). Point both + at the temp fixture so FN-7537 still asserts the in-process backup intercept. + */ + const store = createMockStore({ + getFusionDir: vi.fn().mockReturnValue(fusionDir), + getGlobalSettingsDir: vi.fn().mockReturnValue(fusionDir), + } as any); const app = express(); app.use(express.json()); app.use("/api", createApiRoutes(store, { automationStore: mockStore as any })); @@ -1445,7 +1460,10 @@ describe("Automation routes", () => { }, ], }); - const store = createMockStore({ getFusionDir: vi.fn().mockReturnValue(fusionDir) } as any); + const store = createMockStore({ + getFusionDir: vi.fn().mockReturnValue(fusionDir), + getGlobalSettingsDir: vi.fn().mockReturnValue(fusionDir), + } as any); const app = express(); app.use(express.json()); app.use("/api", createApiRoutes(store, { automationStore: mockStore as any })); @@ -1472,7 +1490,10 @@ describe("Automation routes", () => { ...FAKE_SCHEDULE, command: "fn backup --create", }); - const store = createMockStore({ getFusionDir: vi.fn().mockReturnValue(fusionDir) } as any); + const store = createMockStore({ + getFusionDir: vi.fn().mockReturnValue(fusionDir), + getGlobalSettingsDir: vi.fn().mockReturnValue(fusionDir), + } as any); const app = express(); app.use(express.json()); app.use("/api", createApiRoutes(store, { automationStore: mockStore as any })); diff --git a/packages/dashboard/vitest.config.ts b/packages/dashboard/vitest.config.ts index f3bc6b7930..266c26da41 100644 --- a/packages/dashboard/vitest.config.ts +++ b/packages/dashboard/vitest.config.ts @@ -583,9 +583,19 @@ export default defineConfig({ __dirname, "../../plugins/fusion-plugin-grok-runtime/src/index.ts", ), + /* + FNXC:DashboardTests 2026-07-18-09:45: + Alias Claude runtime to probes-entry (probe + model discovery only), not the full + ACP index — same class as CLI #2292. Importing index pulls @agentclientprotocol/sdk + and breaks dashboard-api-quality under source-checkout full-suite resolution. + */ "@fusion-plugin-examples/claude-runtime": resolve( __dirname, - "../../plugins/fusion-plugin-claude-runtime/src/index.ts", + "../../plugins/fusion-plugin-claude-runtime/src/probes-entry.ts", + ), + "@fusion-plugin-examples/claude-runtime/probe": resolve( + __dirname, + "../../plugins/fusion-plugin-claude-runtime/src/probe.ts", ), /* FNXC:OmpAcp 2026-07-11-23:35: