test(frontend): 加载前端测试初始化脚本
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
parent
c2b0591200
commit
d72bf0897e
@ -5,6 +5,45 @@
|
|||||||
import { config } from '@vue/test-utils'
|
import { config } from '@vue/test-utils'
|
||||||
import { vi } from 'vitest'
|
import { vi } from 'vitest'
|
||||||
|
|
||||||
|
function createMemoryStorage(): Storage {
|
||||||
|
const values = new Map<string, string>()
|
||||||
|
|
||||||
|
return {
|
||||||
|
get length() {
|
||||||
|
return values.size
|
||||||
|
},
|
||||||
|
clear() {
|
||||||
|
values.clear()
|
||||||
|
},
|
||||||
|
getItem(key: string) {
|
||||||
|
return values.has(key) ? values.get(key)! : null
|
||||||
|
},
|
||||||
|
key(index: number) {
|
||||||
|
return Array.from(values.keys())[index] ?? null
|
||||||
|
},
|
||||||
|
removeItem(key: string) {
|
||||||
|
values.delete(key)
|
||||||
|
},
|
||||||
|
setItem(key: string, value: string) {
|
||||||
|
values.set(key, String(value))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof globalThis.localStorage === 'undefined' || typeof globalThis.localStorage.getItem !== 'function') {
|
||||||
|
Object.defineProperty(globalThis, 'localStorage', {
|
||||||
|
configurable: true,
|
||||||
|
value: createMemoryStorage()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof window !== 'undefined' && typeof window.localStorage.getItem !== 'function') {
|
||||||
|
Object.defineProperty(window, 'localStorage', {
|
||||||
|
configurable: true,
|
||||||
|
value: globalThis.localStorage
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// Mock requestIdleCallback (Safari < 15 不支持)
|
// Mock requestIdleCallback (Safari < 15 不支持)
|
||||||
if (typeof globalThis.requestIdleCallback === 'undefined') {
|
if (typeof globalThis.requestIdleCallback === 'undefined') {
|
||||||
globalThis.requestIdleCallback = ((callback: IdleRequestCallback) => {
|
globalThis.requestIdleCallback = ((callback: IdleRequestCallback) => {
|
||||||
|
|||||||
@ -13,6 +13,7 @@ export default defineConfig({
|
|||||||
test: {
|
test: {
|
||||||
globals: true,
|
globals: true,
|
||||||
environment: 'jsdom',
|
environment: 'jsdom',
|
||||||
|
setupFiles: ['./src/__tests__/setup.ts'],
|
||||||
include: ['src/**/*.{test,spec}.{js,ts,jsx,tsx}'],
|
include: ['src/**/*.{test,spec}.{js,ts,jsx,tsx}'],
|
||||||
exclude: ['node_modules', 'dist'],
|
exclude: ['node_modules', 'dist'],
|
||||||
coverage: {
|
coverage: {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user