-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathvitest.setup.ts
More file actions
39 lines (34 loc) · 989 Bytes
/
vitest.setup.ts
File metadata and controls
39 lines (34 loc) · 989 Bytes
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
import { beforeEach, vi } from 'vitest'
import { browser } from 'wxt/browser'
import { fakeBrowser } from 'wxt/testing/fake-browser'
beforeEach(() => {
// Reset the in-memory state before every test
fakeBrowser.reset()
})
// @ts-expect-error mocking
browser.permissions ??= {}
vi.mock('wxt/browser', async () => {
const { fakeBrowser } = await vi.importActual('wxt/testing/fake-browser')
return { browser: fakeBrowser }
})
Object.defineProperty(browser, 'permissions', {
value: {
contains: vi.fn(() => Promise.resolve(true)),
getAll: vi.fn(),
remove: vi.fn(),
request: vi.fn(),
} satisfies Pick<typeof browser.permissions, 'contains' | 'getAll' | 'remove' | 'request'>,
})
vi.spyOn(browser.runtime, 'connect').mockImplementation(() => ({
name: '',
// @ts-expect-error mocking
onDisconnect: {
addListener: vi.fn(),
},
// @ts-expect-error mocking
onMessage: {
addListener: vi.fn(),
},
disconnect: vi.fn(),
postMessage: vi.fn(),
}))