reactjs - Bruke Storybook og Vitest, mocke en modul gir unntak
Jeg har en Storybook-oppsett som bruker vitest, og jeg vil mocke en modul i en historie ved hjelp av vitest, så jeg legger til følgende øverst i min stories-fil:
// my-nice-function.stories.tsx
import { vi } from "vitest";
vi.mock("../some-module", () => ({
someFunction: vi.fn(),
}));
// the actual stories below here...
Men når jeg kjører denne historien, oppstår følgende feil:
Kan ikke lese egenskaper av undefined (leser 'customEqualityTesters')
Nå viser stack-tracen at feilen oppstår i http://localhost:6006/node_modules/.cache/storybook/ea2884736a0b9e4a130cf856017239193d1095a3a808f644c6f79a05cc61ea0f/sb-vite/deps/vitest.js?v=6cfb0e39, men når jeg ser på denne linjen, ser jeg følgende (på linje 10869):
function getCustomEqualityTesters() {
return globalThis[JEST_MATCHERS_OBJECT].customEqualityTesters;
}
Når man inspiserer globalThis, har det ikke en oppføring for JEST_MATCHER_OBJECT (deklarert på linje 10773 som var JEST_MATCHERS_OBJECT=Symbol.for("$$jest-matchers-object");):
Jeg er ikke helt sikker på hvor mye Jest Vitest bruker, men mangler jeg noen avhengighet som injiserer jest-match-object-egenskapen i globalThis?
Svar #1
Jeg opplevde dette problemet og fant ut at årsaken var importering av vitest i .stories-filen. Å fjerne vitest som en importert avhengighet løste problemet.
