Skip to content

Commit 173f096

Browse files
fix(web): break metricsEqual lastSeen dep-loop; add staleTime to test
Remove lastSeen from metricsEqual in ServerWorkspaceRows: computeFleetAggregates never reads lastSeen, so comparing it in metricsEqual causes background TanStack Query refetches (dataUpdatedAt changes) to trigger spurious onMetrics callbacks, cascading into a Dashboard → ServerWorkspaceRows render loop that hits React's 100-render limit in CI. Add staleTime: Infinity to the test QueryClient to prevent background refetches from interfering with test assertions.
1 parent 1c28cae commit 173f096

2 files changed

Lines changed: 3 additions & 2 deletions

File tree

packages/web/src/components/dashboard/ServerWorkspaceRows.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ function metricsEqual(a: FleetRowMetrics, b: FleetRowMetrics): boolean {
3434
a.conclusionCount === b.conclusionCount &&
3535
a.queueActive === b.queueActive &&
3636
a.queuePending === b.queuePending &&
37-
a.lastSeen === b.lastSeen &&
3837
a.health === b.health
3938
);
4039
}

packages/web/src/test/dashboard.test.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,9 @@ function renderDashboard() {
4141
routeTree,
4242
history: createMemoryHistory({ initialEntries: ["/"] }),
4343
});
44-
const qc = new QueryClient({ defaultOptions: { queries: { retry: false } } });
44+
const qc = new QueryClient({
45+
defaultOptions: { queries: { retry: false, staleTime: Infinity } },
46+
});
4547
return render(
4648
<QueryClientProvider client={qc}>
4749
<DemoProvider>

0 commit comments

Comments
 (0)