setup.ts
973 Bytes
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());