reactjs - استخدام Storybook و Vitest، محاكاة وحدة تُسبب استثناء
لدي إعداد Storybook باستخدام vitest، وأريد محاكاة وحدة في القصة باستخدام vitest، لذلك أضيف ما يلي إلى أعلى ملف القصص الخاص بي:
// my-nice-function.stories.tsx
import { vi } from "vitest";
vi.mock("../some-module", () => ({
someFunction: vi.fn(),
}));
// the actual stories below here...
لكن عندما أشغل هذه القصة، يتم طرح الخطأ التالي:
لا يمكن قراءة خصائص غير معرف (قراءة 'customEqualityTesters')
الآن، يُظهر تتبع المكدس أن الخطأ يحدث في http://localhost:6006/node_modules/.cache/storybook/ea2884736a0b9e4a130cf856017239193d1095a3a808f644c6f79a05cc61ea0f/sb-vite/deps/vitest.js?v=6cfb0e39، ولكن عندما أنظر إلى هذا السطر، أرى ما يلي (في السطر 10869):
function getCustomEqualityTesters() {
return globalThis[JEST_MATCHERS_OBJECT].customEqualityTesters;
}
عند فحص globalThis، لا يحتوي على إدخال لـ JEST_MATCHER_OBJECT (المعلن في السطر 10773 كـ var JEST_MATCHERS_OBJECT=Symbol.for("$$jest-matchers-object");):
لست متأكدًا تمامًا من مقدار ما يستخدمه Vitest من Jest، لكن هل أفوت بعض التبعيات التي تدخل خاصية jest-match-object في globalThis؟
الإجابة رقم 1
لقد واجهت هذه المشكلة ووجدت أن السبب هو استيراد vitest في ملف .stories. إزالة vitest كاعتماد مستورد حلت المشكلة.
