reactjs - Storybookin ja Vitestin käyttäminen, moduulin mokkaaminen aiheuttaa poikkeuksen


Minulla on Storybook-asennus, joka käyttää vitestiä, ja haluan simuloida moduulia tarinassa vitestin avulla, joten lisään seuraavan omien tarinoideni tiedoston alkuun:

// my-nice-function.stories.tsx
import { vi } from "vitest";

vi.mock("../some-module", () => ({
  someFunction: vi.fn(),
}));

// the actual stories below here...

Mutta kun suoritan tämän tarinan, seuraava virhe ilmestyy:

Ei voi lukea määrittelemättömän ominaisuuksia (lukeminen 'customEqualityTesters')

Nyt pinonseuranta näyttää, että virhe heitetään kohdassa http://localhost:6006/node_modules/.cache/storybook/ea2884736a0b9e4a130cf856017239193d1095a3a808f644c6f79a05cc61ea0f/sb-vite/deps/vitest.js?v=6cfb0e39, mutta kun katson tätä riviä, näen seuraavaa (rivillä 10869):

function getCustomEqualityTesters() {
  return globalThis[JEST_MATCHERS_OBJECT].customEqualityTesters;
}

Tarkasteltaessa globalThisia sillä ei ole merkintää JEST_MATCHER_OBJECTille (julistettu rivillä 10773 muodossa var JEST_MATCHERS_OBJECT=Symbol.for("$$jest-matchers-object");):

En ole täysin varma, kuinka paljon Jest Vitest käyttää, mutta puuttuuko minulta jokin riippuvuus, joka lisää jest-match-object-ominaisuuden globalThisiin?

Vastaus #1

Koin tämän ongelman ja huomasin, että syynä oli vitestin tuominen .stories-tiedostossa. Vitestin poistaminen tuoduksi riippuvuudeksi ratkaisi ongelman.