import '@testing-library/jest-dom' import React from 'react' import { afterEach, vi } from 'vitest' import { cleanup } from '@testing-library/react' // Cleanup after each test afterEach(() => { cleanup() }) // Mock Next.js router vi.mock('next/navigation', () => ({ useRouter: () => ({ push: vi.fn(), replace: vi.fn(), prefetch: vi.fn(), back: vi.fn(), forward: vi.fn(), }), usePathname: () => '/sdk', useSearchParams: () => new URLSearchParams(), })) // Mock Next.js Link component vi.mock('next/link', () => ({ default: ({ children, href, ...props }: { children: React.ReactNode; href: string; [key: string]: unknown }) => { return React.createElement('a', { href: href || '#', ...props }, children) }, })) // Mock localStorage const localStorageMock = { getItem: vi.fn(), setItem: vi.fn(), removeItem: vi.fn(), clear: vi.fn(), } Object.defineProperty(window, 'localStorage', { value: localStorageMock }) // Mock URL.createObjectURL and URL.revokeObjectURL for export tests Object.defineProperty(URL, 'createObjectURL', { writable: true, value: vi.fn(() => 'blob:mock-url'), }) Object.defineProperty(URL, 'revokeObjectURL', { writable: true, value: vi.fn(), })