50 lines
1.0 KiB
JavaScript
50 lines
1.0 KiB
JavaScript
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(),
|
|
})),
|
|
}))
|