mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-08-07 14:43:25 +08:00
71 lines
1.5 KiB
TypeScript
71 lines
1.5 KiB
TypeScript
import '@testing-library/jest-dom/vitest'
|
|
import { abortAllRequests } from '@/utils/requestOptimizer'
|
|
import { cleanup } from '@testing-library/vue'
|
|
import { afterAll, afterEach, beforeAll, vi } from 'vitest'
|
|
import { server } from './support/msw/server'
|
|
|
|
class ResizeObserverStub implements ResizeObserver {
|
|
disconnect() {}
|
|
observe() {}
|
|
unobserve() {}
|
|
}
|
|
|
|
class IntersectionObserverStub implements IntersectionObserver {
|
|
readonly root = null
|
|
readonly rootMargin = '0px'
|
|
readonly thresholds = [0]
|
|
|
|
disconnect() {}
|
|
observe() {}
|
|
takeRecords(): IntersectionObserverEntry[] {
|
|
return []
|
|
}
|
|
unobserve() {}
|
|
}
|
|
|
|
Object.defineProperty(globalThis, 'ResizeObserver', {
|
|
configurable: true,
|
|
value: ResizeObserverStub,
|
|
writable: true,
|
|
})
|
|
|
|
Object.defineProperty(globalThis, 'IntersectionObserver', {
|
|
configurable: true,
|
|
value: IntersectionObserverStub,
|
|
writable: true,
|
|
})
|
|
|
|
Object.defineProperty(window, 'matchMedia', {
|
|
configurable: true,
|
|
value: (query: string): MediaQueryList => ({
|
|
addEventListener: vi.fn(),
|
|
addListener: vi.fn(),
|
|
dispatchEvent: vi.fn(),
|
|
matches: false,
|
|
media: query,
|
|
onchange: null,
|
|
removeEventListener: vi.fn(),
|
|
removeListener: vi.fn(),
|
|
}),
|
|
writable: true,
|
|
})
|
|
|
|
beforeAll(() => {
|
|
server.listen({ onUnhandledRequest: 'error' })
|
|
})
|
|
|
|
afterEach(() => {
|
|
cleanup()
|
|
abortAllRequests()
|
|
server.resetHandlers()
|
|
localStorage.clear()
|
|
sessionStorage.clear()
|
|
vi.useRealTimers()
|
|
vi.restoreAllMocks()
|
|
vi.unstubAllGlobals()
|
|
})
|
|
|
|
afterAll(() => {
|
|
server.close()
|
|
})
|