koel/resources/assets/js/__tests__/setup.ts

64 lines
1.2 KiB
TypeScript

import vueSnapshotSerializer from 'jest-serializer-vue'
import { expect, vi } from 'vitest'
import Axios from 'axios'
declare global {
interface Window {
BASE_URL: string
MAILER_CONFIGURED: boolean
SSO_PROVIDERS: string[]
createLemonSqueezy: () => void
}
interface LemonSqueezy {
Url: {
Open: () => void
}
}
}
expect.addSnapshotSerializer(vueSnapshotSerializer)
global.ResizeObserver = global.ResizeObserver ||
vi.fn().mockImplementation(() => ({
disconnect: vi.fn(),
observe: vi.fn(),
unobserve: vi.fn()
}))
global.LemonSqueezy = {
Url: {
Open: vi.fn()
}
}
HTMLMediaElement.prototype.load = vi.fn()
HTMLMediaElement.prototype.play = vi.fn()
HTMLMediaElement.prototype.pause = vi.fn()
HTMLDialogElement.prototype.show = vi.fn(function mock () {
this.open = true
})
HTMLDialogElement.prototype.showModal = vi.fn(function mock () {
this.open = true
})
HTMLDialogElement.prototype.close = vi.fn(function mock () {
this.open = false
})
window.BASE_URL = 'http://test/'
window.MAILER_CONFIGURED = true
window.SSO_PROVIDERS = []
window.createLemonSqueezy = vi.fn()
Axios.defaults.adapter = vi.fn()
Object.assign(navigator, {
clipboard: {
writeText: vi.fn()
}
})