-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathjest.setup.ts
More file actions
46 lines (37 loc) · 1.24 KB
/
jest.setup.ts
File metadata and controls
46 lines (37 loc) · 1.24 KB
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
import fetchMock from "jest-fetch-mock"
import { INSTRUMENT_ENDPOINT } from "./packages/core/src/constants"
import mockConsole from "./packages/core/test/mocks/mockConsole"
import { MockDate } from "./packages/core/test/mocks/mockDate"
import { MockImage } from "./packages/core/test/mocks/mockImage"
import "./packages/core/src/polyfills"
export function wait(ms?: number): Promise<void> {
return new Promise(resolve => setTimeout(resolve, ms))
}
export function tick(): Promise<void> {
return wait()
}
Object.defineProperty(globalThis, "console", {
value: mockConsole,
})
Object.defineProperty(globalThis, "Date", {
value: MockDate,
})
Object.defineProperty(globalThis, "Image", {
value: MockImage,
})
globalThis.URL.createObjectURL = jest.fn().mockImplementation((blob: Blob): string => {
return `blob://blobbish-${blob.type}-${Date.now()}`
})
globalThis.URL.canParse = jest.fn().mockImplementation((url: string | URL) => {
const urlString = url.toString()
const isTestURL = [
"https://fake_click_url",
"https://fake_impression_url",
"https://example.com",
`${INSTRUMENT_ENDPOINT}`,
].reduce((acc, curr): boolean => {
return acc = acc || urlString.startsWith(curr)
}, false)
return isTestURL
})
fetchMock.enableMocks()