From ad0eb26e05908d2e180a73fecc22776d97acb0db Mon Sep 17 00:00:00 2001 From: AmanTahiliani Date: Sun, 12 Jul 2026 19:54:16 -0400 Subject: [PATCH] fix(#76): preserve Race Hub retry testid after RouteState migrate Keep rh-retry discoverable for existing Race Hub recovery tests and accept AbortSignal on bare-route default analysis fetch assertions. Co-authored-by: Cursor --- frontend/src/components/RouteState.tsx | 4 ++++ frontend/src/pages/RaceHubPage.tsx | 2 ++ frontend/src/test/RaceHubPage.test.tsx | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/RouteState.tsx b/frontend/src/components/RouteState.tsx index f470593..b7d55a0 100644 --- a/frontend/src/components/RouteState.tsx +++ b/frontend/src/components/RouteState.tsx @@ -39,6 +39,8 @@ interface RouteStateProps { onRetry?: () => void retrying?: boolean testId?: string + /** Optional override for the Retry button's data-testid (defaults to none). */ + retryTestId?: string className?: string /** Optional availability strip (stale/limited/partial) above the state body. */ availability?: DataAvailability @@ -72,6 +74,7 @@ export function RouteState({ onRetry, retrying = false, testId, + retryTestId, className = '', availability, children, @@ -113,6 +116,7 @@ export function RouteState({ onClick={onRetry} disabled={retrying} aria-busy={retrying || undefined} + data-testid={retryTestId} > {retrying ? 'Retrying…' : 'Retry'} diff --git a/frontend/src/pages/RaceHubPage.tsx b/frontend/src/pages/RaceHubPage.tsx index 2e3ae7f..1733017 100644 --- a/frontend/src/pages/RaceHubPage.tsx +++ b/frontend/src/pages/RaceHubPage.tsx @@ -122,6 +122,7 @@ export function RaceHubPage({ sessionKey }: Props) { if (!contextQuery.isFetching) void contextQuery.refetch() }} retrying={contextQuery.isFetching} + retryTestId="rh-retry" >
@@ -212,6 +213,7 @@ export function RaceHubPage({ sessionKey }: Props) { if (!raceHubQuery.isFetching) void raceHubQuery.refetch() }} retrying={raceHubQuery.isFetching} + retryTestId="rh-retry" >
{ renderRaceHub(0) - await waitFor(() => expect(mockFetchRaceHub).toHaveBeenCalledWith(9471)) + await waitFor(() => expect(mockFetchRaceHub).toHaveBeenCalledWith(9471, expect.any(AbortSignal))) + expect(mockFetchRaceHub).not.toHaveBeenCalledWith(9600, expect.anything()) expect(mockFetchRaceHub).not.toHaveBeenCalledWith(9600) })