import '@testing-library/jest-dom' // Mock Next.js router jest.mock('next/navigation', () => ({ useRouter() { return { push: jest.fn(), replace: jest.fn(), prefetch: jest.fn(), back: jest.fn(), } }, useSearchParams() { return new URLSearchParams() }, })) // Mock NextAuth jest.mock('next-auth/react', () => ({ useSession() { return { data: null, status: 'unauthenticated' } }, signIn: jest.fn(), signOut: jest.fn(), })) // Mock fetch global.fetch = jest.fn() // Mock MediaRecorder global.MediaRecorder = jest.fn().mockImplementation(() => ({ start: jest.fn(), stop: jest.fn(), pause: jest.fn(), resume: jest.fn(), addEventListener: jest.fn(), removeEventListener: jest.fn(), })) // Mock AudioContext global.AudioContext = jest.fn().mockImplementation(() => ({ createAnalyser: jest.fn(() => ({ connect: jest.fn(), disconnect: jest.fn(), })), createMediaStreamSource: jest.fn(() => ({ connect: jest.fn(), disconnect: jest.fn(), })), }))