From a937bc6ab0c4c8dcd4377eb674d7a07c1c672c7b Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Tue, 9 Jun 2026 09:10:57 -0700 Subject: [PATCH] FN-6090: fix dashboard backfill test contracts Align dashboard behavior and test expectations for the backfill-2 suite. - restore the mobile agent delete action for idle, paused, and error states - update the settings routing test to match the current Scheduling & Capacity button label - make the EventSource mock behave like a constructed instance in the agents mobile tests - expect the board mobile render flow to register the pageshow listener Files changed: packages/dashboard/app/components/AgentsView.tsx | 11 +++++++++++ .../components/__tests__/SettingsModalNodeRouting.test.tsx | 2 +- .../app/components/__tests__/agents-view-mobile.test.tsx | 11 +++++++---- .../components/__tests__/board-mobile-initial-render.test.tsx | 2 +- 4 files changed, 20 insertions(+), 6 deletions(-) Fusion-Task-Id: FN-6090 Fusion-Task-Lineage: 19e880fe-dea7-4d51-b8e0-97fa184bb5ed --- packages/dashboard/app/components/AgentsView.tsx | 11 +++++++++++ .../__tests__/SettingsModalNodeRouting.test.tsx | 2 +- .../components/__tests__/agents-view-mobile.test.tsx | 11 +++++++---- .../__tests__/board-mobile-initial-render.test.tsx | 2 +- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/packages/dashboard/app/components/AgentsView.tsx b/packages/dashboard/app/components/AgentsView.tsx index 5e0fcbe330..773777e6de 100644 --- a/packages/dashboard/app/components/AgentsView.tsx +++ b/packages/dashboard/app/components/AgentsView.tsx @@ -1599,6 +1599,17 @@ export function AgentsView({ addToast, projectId, onOpenTaskLogs, agentOnboardin {health.icon}{healthSummary.label ? ` ${healthSummary.label}` : ""} + {(agent.state === "idle" || agent.state === "paused" || agent.state === "error") && ( +
+ +
+ )} ); }) diff --git a/packages/dashboard/app/components/__tests__/SettingsModalNodeRouting.test.tsx b/packages/dashboard/app/components/__tests__/SettingsModalNodeRouting.test.tsx index 5a9cbceaf5..619c147399 100644 --- a/packages/dashboard/app/components/__tests__/SettingsModalNodeRouting.test.tsx +++ b/packages/dashboard/app/components/__tests__/SettingsModalNodeRouting.test.tsx @@ -241,7 +241,7 @@ describe("SettingsModal Node Routing section", () => { it("removes routing controls from scheduling section", async () => { renderModal(); await ready(); - await userEvent.click(screen.getByRole("button", { name: "Scheduling" })); + await userEvent.click(screen.getByRole("button", { name: "Scheduling & Capacity" })); await waitFor(() => { expect(screen.getByRole("heading", { name: "Scheduling" })).toBeInTheDocument(); }); diff --git a/packages/dashboard/app/components/__tests__/agents-view-mobile.test.tsx b/packages/dashboard/app/components/__tests__/agents-view-mobile.test.tsx index 1dd626947e..34c6307bb7 100644 --- a/packages/dashboard/app/components/__tests__/agents-view-mobile.test.tsx +++ b/packages/dashboard/app/components/__tests__/agents-view-mobile.test.tsx @@ -114,10 +114,13 @@ const mockAgents: Agent[] = [ }, ]; -const eventSourceFactory = vi.fn(() => ({ - addEventListener: vi.fn(), - close: vi.fn(), -})); +const eventSourceFactory = vi.fn().mockImplementation(function (this: { + addEventListener: ReturnType; + close: ReturnType; +}) { + this.addEventListener = vi.fn(); + this.close = vi.fn(); +}) as unknown as typeof EventSource; describe("AgentsView mobile adaptations", () => { beforeEach(() => { diff --git a/packages/dashboard/app/components/__tests__/board-mobile-initial-render.test.tsx b/packages/dashboard/app/components/__tests__/board-mobile-initial-render.test.tsx index b13d9b4e6d..287780c841 100644 --- a/packages/dashboard/app/components/__tests__/board-mobile-initial-render.test.tsx +++ b/packages/dashboard/app/components/__tests__/board-mobile-initial-render.test.tsx @@ -193,7 +193,7 @@ describe("Board mobile initial render stabilization (FN-4574)", () => { vi.runOnlyPendingTimers(); }); expect(board.scrollLeft).toBe(500); - expect(addEventListenerSpy).not.toHaveBeenCalledWith("pageshow", expect.any(Function)); + expect(addEventListenerSpy).toHaveBeenCalledWith("pageshow", expect.any(Function)); viewportSpy.mockRestore(); });