reactjs - Používanie Storybook a Vitest, simulovanie modulu vyvolá výnimku
Mám nastavený Storybook s použitím vitest a chcem v príbehu pomocou vitest namiesto modulu vytvoriť mock, takže pridám nasledovné na začiatok súboru s príbehmi:
// my-nice-function.stories.tsx
import { vi } from "vitest";
vi.mock("../some-module", () => ({
someFunction: vi.fn(),
}));
// the actual stories below here...
Ale keď spustím tento príbeh, zobrazí sa nasledujúca chyba:
Nie je možné čítať vlastnosti nedefinovaného (čítanie 'customEqualityTesters')
Teraz stack-trace ukazuje, že chyba je vyhodená v http://localhost:6006/node_modules/.cache/storybook/ea2884736a0b9e4a130cf856017239193d1095a3a808f644c6f79a05cc61ea0f/sb-vite/deps/vitest.js?v=6cfb0e39, ale keď sa pozriem na tento riadok, vidím nasledovné (na riadku 10869):
function getCustomEqualityTesters() {
return globalThis[JEST_MATCHERS_OBJECT].customEqualityTesters;
}
Pri prehliadaní globalThis nemá položku pre JEST_MATCHER_OBJECT (deklarovanú na riadku 10773 ako var JEST_MATCHERS_OBJECT=Symbol.for("$$jest-matchers-object");):
Nie som si úplne istý, koľko jest vitest používa, ale chýba mi nejaká závislosť, ktorá injektuje vlastnosť jest-match-object do globalThis?
Odpoveď č. 1
Zažil som tento problém a zistil som, že príčinou bolo importovanie vitest do súboru .stories. Odstránenie vitest ako importovanej závislosti problém vyriešilo.
