* setup first tests * better * variants * use openrouter + cleaning * write to files * cleaning * cleaning * inline scripts * more tests * cleaning * better * test all * few * better errors * cleaning
60 lines
1.1 KiB
TypeScript
60 lines
1.1 KiB
TypeScript
/**
|
|
* Vitest setup file to mock browser globals for testing
|
|
*/
|
|
|
|
// Mock localStorage
|
|
const localStorageMock = {
|
|
store: {} as Record<string, string>,
|
|
getItem(key: string) {
|
|
return this.store[key] ?? null
|
|
},
|
|
setItem(key: string, value: string) {
|
|
this.store[key] = value
|
|
},
|
|
removeItem(key: string) {
|
|
delete this.store[key]
|
|
},
|
|
clear() {
|
|
this.store = {}
|
|
},
|
|
get length() {
|
|
return Object.keys(this.store).length
|
|
},
|
|
key(index: number) {
|
|
return Object.keys(this.store)[index] ?? null
|
|
}
|
|
}
|
|
|
|
// Mock sessionStorage
|
|
const sessionStorageMock = {
|
|
store: {} as Record<string, string>,
|
|
getItem(key: string) {
|
|
return this.store[key] ?? null
|
|
},
|
|
setItem(key: string, value: string) {
|
|
this.store[key] = value
|
|
},
|
|
removeItem(key: string) {
|
|
delete this.store[key]
|
|
},
|
|
clear() {
|
|
this.store = {}
|
|
},
|
|
get length() {
|
|
return Object.keys(this.store).length
|
|
},
|
|
key(index: number) {
|
|
return Object.keys(this.store)[index] ?? null
|
|
}
|
|
}
|
|
|
|
// Assign to globalThis
|
|
Object.defineProperty(globalThis, 'localStorage', {
|
|
value: localStorageMock,
|
|
writable: true
|
|
})
|
|
|
|
Object.defineProperty(globalThis, 'sessionStorage', {
|
|
value: sessionStorageMock,
|
|
writable: true
|
|
}) |