import '@testing-library/jest-dom'; import { vi } from 'vitest'; // Mock window.matchMedia Object.defineProperty(window, 'matchMedia', { writable: true, value: vi.fn().mockImplementation(query => ({ matches: false, media: query, onchange: null, addListener: vi.fn(), // deprecated removeListener: vi.fn(), // deprecated addEventListener: vi.fn(), removeEventListener: vi.fn(), dispatchEvent: vi.fn(), })), }); // Mock ResizeObserver global.ResizeObserver = class MockResizeObserver { constructor(callback: ResizeObserverCallback) { // Store callback for testing (this as any).callback = callback; } observe = vi.fn(); unobserve = vi.fn(); disconnect = vi.fn(); }; // Mock IntersectionObserver global.IntersectionObserver = class MockIntersectionObserver { constructor(callback: IntersectionObserverCallback) { // Store callback for testing (this as any).callback = callback; } observe = vi.fn(); unobserve = vi.fn(); disconnect = vi.fn(); root: Element | null = null; rootMargin: string = ''; thresholds: ReadonlyArray = []; takeRecords = vi.fn(); };