Fix sports.test.tsx timeout: mock SportIcon to eliminate async image-error state updates
SportIcon renders <img> elements whose onError handler calls setFailed(true), scheduling state updates asynchronously outside React act() in jsdom. With multiple icons on the Sports page this caused the synchronous render test to hit the 5000ms Vitest timeout intermittently. Mock SportIcon in the test using resolveSportIconUrl() so the mock stays in sync with the real URL resolution logic if it ever changes. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
350620ca67
commit
3c3b162aab
1 changed files with 10 additions and 0 deletions
|
|
@ -6,6 +6,16 @@ vi.mock("~/models/sport", () => ({
|
|||
findPublicSportsWithCurrentSeasons: vi.fn(),
|
||||
}));
|
||||
|
||||
vi.mock("~/components/SportIcon", async () => {
|
||||
const { resolveSportIconUrl } = await import("~/lib/sport-icon-url");
|
||||
return {
|
||||
SportIcon: ({ sportName, iconUrl }: { sportName: string; iconUrl?: string | null }) => {
|
||||
const src = resolveSportIconUrl(iconUrl);
|
||||
return src ? <img src={src} alt={sportName} /> : null;
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
import Sports, { loader } from "../sports";
|
||||
import { findPublicSportsWithCurrentSeasons } from "~/models/sport";
|
||||
import type { PublicSportWithCurrentSeasons } from "~/models/sport";
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue