allinssl/frontend/packages/vue/hooks/test/setup.js

37 lines
953 B
JavaScript

import 'fake-indexeddb/auto'
import { vi } from 'vitest'
import { indexedDB, IDBKeyRange } from 'fake-indexeddb'
// 设置全局变量
globalThis.indexedDB = indexedDB
globalThis.IDBKeyRange = IDBKeyRange
// 清理 IndexedDB 数据库的辅助函数
async function clearIndexedDB() {
const databases = indexedDB._databases
if (databases && databases instanceof Map) {
const databaseNames = Array.from(databases.keys())
await Promise.all(
databaseNames.map(
(name) =>
new Promise((resolve, reject) => {
const request = indexedDB.deleteDatabase(name)
request.onerror = () => reject(request.error)
request.onsuccess = () => resolve()
}),
),
)
}
}
// 清理函数
beforeEach(async () => {
// 重置所有模拟
vi.resetModules()
// 清理 indexedDB
await clearIndexedDB()
})
// 测试完成后清理
afterEach(async () => {
// 清理 indexedDB
await clearIndexedDB()
})
//# sourceMappingURL=setup.js.map