import '@testing-library/jest-dom'; // Mock Next.js router jest.mock('next/navigation', () => ({ useRouter() { return { route: '/', pathname: '/', query: {}, asPath: '/', push: jest.fn(), replace: jest.fn(), reload: jest.fn(), back: jest.fn(), prefetch: jest.fn(), beforePopState: jest.fn(), events: { on: jest.fn(), off: jest.fn(), emit: jest.fn(), }, isFallback: false, isLocaleDomain: false, isReady: true, isPreview: false, }; }, useSearchParams() { return { get: jest.fn(), getAll: jest.fn(), has: jest.fn(), entries: jest.fn(), keys: jest.fn(), values: jest.fn(), forEach: jest.fn(), }; }, usePathname() { return '/'; }, })); // Mock window.matchMedia Object.defineProperty(window, 'matchMedia', { writable: true, value: jest.fn().mockImplementation(query => ({ matches: false, media: query, onchange: null, addListener: jest.fn(), removeListener: jest.fn(), addEventListener: jest.fn(), removeEventListener: jest.fn(), dispatchEvent: jest.fn(), })), }); // Clean up after each test afterEach(() => { jest.clearAllMocks(); });