import '@testing-library/jest-dom/vitest'; import { afterAll, afterEach, beforeAll, vi } from 'vitest'; import { setupServer } from 'msw/node'; import { handlers } from './msw-handlers'; // AntD Grid 在 jsdom 下需要 matchMedia polyfill Object.defineProperty(window, 'matchMedia', { writable: true, value: vi.fn().mockImplementation((query: string) => ({ matches: false, media: query, onchange: null, addListener: vi.fn(), removeListener: vi.fn(), addEventListener: vi.fn(), removeEventListener: vi.fn(), dispatchEvent: vi.fn(), })), }); // AntD 用到 ResizeObserver class ResizeObserverPolyfill { observe() {} unobserve() {} disconnect() {} } (window as any).ResizeObserver = (window as any).ResizeObserver ?? ResizeObserverPolyfill; export const server = setupServer(...handlers); beforeAll(() => server.listen({ onUnhandledRequest: 'error' })); afterEach(() => server.resetHandlers()); afterAll(() => server.close());