Skip to content

Commit c420cb7

Browse files
authoredFeb 13, 2023
fix: clear mocks between tests (#2857)
1 parent 4ea1f1d commit c420cb7

File tree

6 files changed

+37
-2
lines changed

6 files changed

+37
-2
lines changed
 

‎packages/vitest/src/runtime/entry.ts

+2
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,8 @@ export async function run(files: string[], config: ResolvedConfig, executor: Vit
144144

145145
// reset after tests, because user might call `vi.setConfig` in setupFile
146146
vi.resetConfig()
147+
// mocks should not affect different files
148+
vi.restoreAllMocks()
147149
}
148150
})
149151
}

‎test/single-thread/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"name": "@vitest/test-single-thread",
3+
"type": "module",
34
"private": true,
45
"scripts": {
56
"test": "vitest",

‎test/single-thread/test/a.test.ts

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
import { it } from 'vitest'
1+
import fs from 'node:fs'
2+
import { expect, it, vi } from 'vitest'
23
import { timeout } from './timeout'
34

5+
// this file is running first, it should not affect file "b.test.ts"
6+
it('mock is mocked', () => {
7+
vi.spyOn(fs, 'readFileSync').mockReturnValue('mocked')
8+
expect(fs.readFileSync('')).toBe('mocked')
9+
})
10+
411
it('timeout', () => new Promise(resolve => setTimeout(resolve, timeout)))

‎test/single-thread/test/b.test.ts

+15-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,18 @@
1-
import { it } from 'vitest'
1+
import fs from 'node:fs'
2+
import { fileURLToPath } from 'node:url'
3+
import { dirname, resolve } from 'pathe'
4+
import { expect, it } from 'vitest'
25
import { timeout } from './timeout'
36

7+
// this file is running second, it should not be affected by mock in "a.test.ts"
8+
it('mock is mocked', () => {
9+
expect(fs.readFileSync(resolve(dirname(fileURLToPath(import.meta.url)), './timeout.ts'), 'utf-8')).toMatchInlineSnapshot(`
10+
"export const timeout = 200
11+
export const mockedFn = function () {
12+
return 'original'
13+
}
14+
"
15+
`)
16+
})
17+
418
it('timeout', () => new Promise(resolve => setTimeout(resolve, timeout)))

‎test/single-thread/test/timeout.ts

+3
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
11
export const timeout = 200
2+
export const mockedFn = function () {
3+
return 'original'
4+
}

‎test/single-thread/vitest.config.ts

+8
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
import { defineConfig } from 'vite'
2+
import { BaseSequencer } from 'vitest/node'
23

34
export default defineConfig({
45
test: {
56
threads: false,
7+
sequence: {
8+
sequencer: class Sequences extends BaseSequencer {
9+
public async sort(files: string[]): Promise<string[]> {
10+
return files.sort()
11+
}
12+
},
13+
},
614
},
715
})

0 commit comments

Comments
 (0)
Please sign in to comment.