-
Notifications
You must be signed in to change notification settings - Fork 0
/
setupTests.ts
53 lines (39 loc) · 963 Bytes
/
setupTests.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import "@testing-library/jest-dom"
import "jest-location-mock"
import { setGlobalOrigin } from "undici"
import { server } from "./src/mocks/node"
beforeAll(() => server.listen())
beforeEach(() => {
setGlobalOrigin(window.location.href)
})
afterEach(() => server.resetHandlers())
afterAll(() => server.close())
global.clearImmediate = jest.useRealTimers
interface LocalStorageMock {
getItem(key: string): string | null
setItem(key: string, value: string): void
clear(): void
removeItem(key: string): void
getAll(): Record<string, string>
}
const localStorageMock: LocalStorageMock = (function () {
let store: Record<string, string> = {}
return {
getItem(key) {
return store[key] || null
},
setItem(key, value) {
store[key] = value
},
clear() {
store = {}
},
removeItem(key) {
delete store[key]
},
getAll() {
return store
},
}
})()
Object.defineProperty(window, "localStorage", { value: localStorageMock })