/** * Vitest Setup for Website Components * * This file sets up the testing environment for website component tests. * It mocks external dependencies and provides custom matchers. */ import '@testing-library/jest-dom/vitest'; import { vi } from 'vitest'; // Mock Next.js navigation vi.mock('next/navigation', () => ({ useRouter: () => ({ push: vi.fn(), replace: vi.fn(), refresh: vi.fn(), back: vi.fn(), forward: vi.fn(), prefetch: vi.fn(), }), usePathname: () => vi.fn(), useSearchParams: () => vi.fn(), })); // Mock Next.js headers vi.mock('next/headers', () => ({ headers: () => ({ get: vi.fn(), set: vi.fn(), }), })); // Mock Next.js cookies vi.mock('next/cookies', () => ({ cookies: () => ({ get: vi.fn(), set: vi.fn(), delete: vi.fn(), }), })); // Mock React hooks vi.mock('react', async () => { const actual = await vi.importActual('react'); return { ...actual, useTransition: () => [false, vi.fn()], useOptimistic: (initialState: any) => [initialState, vi.fn()], }; }); // Set environment variables process.env.NEXT_PUBLIC_API_BASE_URL = 'http://localhost:3001'; process.env.API_BASE_URL = 'http://localhost:3001';