vitest.setup.ts37 lines · main
| 1 | /// <reference types="@testing-library/jest-dom" /> |
| 2 | import '@testing-library/jest-dom/vitest' |
| 3 | |
| 4 | import { cleanup } from '@testing-library/react' |
| 5 | import { afterEach, vi } from 'vitest' |
| 6 | |
| 7 | Object.defineProperty(window, 'matchMedia', { |
| 8 | writable: true, |
| 9 | value: vi.fn().mockImplementation((query) => ({ |
| 10 | matches: false, |
| 11 | media: query, |
| 12 | onchange: null, |
| 13 | addListener: vi.fn(), // deprecated |
| 14 | removeListener: vi.fn(), // deprecated |
| 15 | addEventListener: vi.fn(), |
| 16 | removeEventListener: vi.fn(), |
| 17 | dispatchEvent: vi.fn(), |
| 18 | })), |
| 19 | }) |
| 20 | |
| 21 | // Mock ResizeObserver |
| 22 | global.ResizeObserver = vi.fn().mockImplementation(function () { |
| 23 | return { |
| 24 | observe: vi.fn(), |
| 25 | unobserve: vi.fn(), |
| 26 | disconnect: vi.fn(), |
| 27 | } |
| 28 | }) |
| 29 | |
| 30 | // Mock scrollIntoView |
| 31 | Element.prototype.scrollIntoView = vi.fn() |
| 32 | |
| 33 | vi.mock('next/navigation', () => require('next-router-mock')) |
| 34 | |
| 35 | afterEach(() => { |
| 36 | cleanup() |
| 37 | }) |