traefik/webui/test/setup.ts

77 lines
1.4 KiB
TypeScript

import '@testing-library/jest-dom'
import 'vitest-canvas-mock'
import * as matchers from 'jest-extended'
import { expect } from 'vitest'
import { server } from '../src/mocks/server'
expect.extend(matchers)
export class IntersectionObserver {
root = null
rootMargin = ''
thresholds = []
disconnect() {
return null
}
observe() {
return null
}
takeRecords() {
return []
}
unobserve() {
return null
}
}
class ResizeObserver {
observe() {
return null
}
unobserve() {
return null
}
disconnect() {
return null
}
}
beforeAll(() => {
global.IntersectionObserver = IntersectionObserver
window.IntersectionObserver = IntersectionObserver
global.ResizeObserver = ResizeObserver
window.ResizeObserver = ResizeObserver
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(),
})),
})
Object.defineProperty(window, 'scrollTo', {
writable: true,
value: vi.fn(),
})
server.listen({ onUnhandledRequest: 'error' })
})
afterEach(() => server.resetHandlers())
afterAll(() => server.close())