import '@testing-library/jest-dom/vitest' import { afterEach, expect } from 'vitest' import { cleanup } from '@testing-library/react' import * as matchers from 'vitest-axe/matchers' expect.extend(matchers) // jsdom doesn't implement window.matchMedia - stub it so hooks that read // media preferences (e.g. useReducedMotion) work in tests. Default to // "no match" so animations stay enabled; individual tests can override. if (typeof window !== 'undefined' && !window.matchMedia) { window.matchMedia = (query: string) => ({ matches: false, media: query, onchange: null, addEventListener: () => {}, removeEventListener: () => {}, addListener: () => {}, removeListener: () => {}, dispatchEvent: () => false, }) as unknown as MediaQueryList } afterEach(() => { cleanup() })