forked from vitest-dev/vitest
/
unmock-import.test.ts
37 lines (31 loc) · 1.01 KB
/
unmock-import.test.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
import { afterEach, beforeEach, expect, test, vi } from 'vitest'
// https://github.com/vitest-dev/vitest/issues/1940
beforeEach(() => {
vi.doMock('/data', () => ({
data: {
state: 'STARTED',
},
}))
})
afterEach(() => {
vi.doUnmock('/data')
})
test('first import', async () => {
// @ts-expect-error I know this
const { data } = await import('/data')
data.state = 'STOPPED'
expect(data.state).toBe('STOPPED')
})
test('second import should had been re-mock', async () => {
// @ts-expect-error I know this
const { data } = await import('/data')
expect(data.state).toBe('STARTED')
})
test('unmock should clear modules replaced with imitation', async () => {
vi.doMock('./fixtures/mocked-dependency')
const { helloWorld } = await import('./fixtures/mocked-dependency')
expect(vi.isMockFunction(helloWorld)).toBe(true)
vi.doUnmock('./fixtures/mocked-dependency')
const { helloWorld: unmocked } = await import('./fixtures/mocked-dependency')
expect(vi.isMockFunction(unmocked)).toBe(false)
})