reactjs - Usando Storybook e Vitest, fare il mock di un modulo genera un'eccezione
Ho una configurazione di Storybook che utilizza vitest e voglio simulare un modulo in una storia tramite vitest, quindi aggiungo quanto segue all'inizio del mio file di storie:
// my-nice-function.stories.tsx
import { vi } from "vitest";
vi.mock("../some-module", () => ({
someFunction: vi.fn(),
}));
// the actual stories below here...
Ma quando eseguo questa storia, viene generato il seguente errore:
Impossibile leggere le proprietà di undefined (lettura di 'customEqualityTesters')
Ora, lo stack-trace mostra che l'errore viene generato in http://localhost:6006/node_modules/.cache/storybook/ea2884736a0b9e4a130cf856017239193d1095a3a808f644c6f79a05cc61ea0f/sb-vite/deps/vitest.js?v=6cfb0e39, ma quando guardo questa linea, vedo quanto segue (alla linea 10869):
function getCustomEqualityTesters() {
return globalThis[JEST_MATCHERS_OBJECT].customEqualityTesters;
}
Ispezionando globalThis, non ha una voce per JEST_MATCHER_OBJECT (dichiarata alla riga 10773 come var JEST_MATCHERS_OBJECT=Symbol.for("$$jest-matchers-object");):
Non sono del tutto sicuro di quanto Jest utilizzi Vitest, ma mi manca qualche dipendenza che inietta la proprietà jest-match-object in globalThis?
Risposta n. 1
Ho riscontrato questo problema e ho scoperto che la causa era l'importazione di vitest nel file .stories. Rimuovere vitest come dipendenza importata ha risolto il problema.
