107 lines
2.2 KiB
TypeScript
107 lines
2.2 KiB
TypeScript
import '@testing-library/jest-dom'
|
|
import { vi } from 'vitest'
|
|
|
|
// Mock Next.js router
|
|
vi.mock('next/router', () => ({
|
|
useRouter: () => ({
|
|
push: vi.fn(),
|
|
pathname: '/',
|
|
query: {},
|
|
asPath: '/',
|
|
}),
|
|
}))
|
|
|
|
// Mock Next.js navigation
|
|
vi.mock('next/navigation', () => ({
|
|
useRouter: () => ({
|
|
push: vi.fn(),
|
|
replace: vi.fn(),
|
|
back: vi.fn(),
|
|
forward: vi.fn(),
|
|
refresh: vi.fn(),
|
|
prefetch: vi.fn(),
|
|
}),
|
|
usePathname: () => '/',
|
|
useSearchParams: () => new URLSearchParams(),
|
|
}))
|
|
|
|
// Mock NextAuth
|
|
vi.mock('next-auth/react', () => ({
|
|
useSession: () => ({
|
|
data: {
|
|
user: {
|
|
id: 'test-user-id',
|
|
name: 'Test User',
|
|
email: 'test@example.com',
|
|
role: 'SHOP_ADMIN',
|
|
},
|
|
},
|
|
status: 'authenticated',
|
|
}),
|
|
signIn: vi.fn(),
|
|
signOut: vi.fn(),
|
|
getSession: vi.fn(),
|
|
}))
|
|
|
|
// Mock React Query
|
|
vi.mock('@tanstack/react-query', () => ({
|
|
useQuery: vi.fn(() => ({
|
|
data: null,
|
|
isLoading: false,
|
|
error: null,
|
|
})),
|
|
useMutation: vi.fn(() => ({
|
|
mutate: vi.fn(),
|
|
mutateAsync: vi.fn(),
|
|
isPending: false,
|
|
isError: false,
|
|
error: null,
|
|
})),
|
|
useQueryClient: vi.fn(() => ({
|
|
invalidateQueries: vi.fn(),
|
|
setQueryData: vi.fn(),
|
|
getQueryData: vi.fn(),
|
|
})),
|
|
QueryClient: vi.fn(),
|
|
QueryClientProvider: ({ children }: { children: React.ReactNode }) => children,
|
|
}))
|
|
|
|
// Mock fetch globally
|
|
global.fetch = vi.fn()
|
|
|
|
// Mock crypto.randomUUID
|
|
Object.defineProperty(global, 'crypto', {
|
|
value: {
|
|
randomUUID: () => 'test-uuid-' + Math.random().toString(36).substr(2, 9),
|
|
},
|
|
})
|
|
|
|
// Mock window.matchMedia
|
|
Object.defineProperty(window, 'matchMedia', {
|
|
writable: true,
|
|
value: vi.fn().mockImplementation(query => ({
|
|
matches: false,
|
|
media: query,
|
|
onchange: null,
|
|
addListener: vi.fn(), // deprecated
|
|
removeListener: vi.fn(), // deprecated
|
|
addEventListener: vi.fn(),
|
|
removeEventListener: vi.fn(),
|
|
dispatchEvent: vi.fn(),
|
|
})),
|
|
})
|
|
|
|
// Mock IntersectionObserver
|
|
global.IntersectionObserver = vi.fn().mockImplementation(() => ({
|
|
observe: vi.fn(),
|
|
unobserve: vi.fn(),
|
|
disconnect: vi.fn(),
|
|
}))
|
|
|
|
// Mock ResizeObserver
|
|
global.ResizeObserver = vi.fn().mockImplementation(() => ({
|
|
observe: vi.fn(),
|
|
unobserve: vi.fn(),
|
|
disconnect: vi.fn(),
|
|
}))
|