1
- import { expect , onTestFailed , test } from 'vitest'
2
- import { runVitest } from '../../test-utils'
1
+ import { expect , onTestFailed , onTestFinished , test } from 'vitest'
2
+ import { editFile , runVitest } from '../../test-utils'
3
3
4
4
test . each ( [ true , false ] ) ( 'mocking works correctly - isolated %s' , async ( isolate ) => {
5
5
const result = await runVitest ( {
@@ -26,3 +26,29 @@ test.each([true, false])('mocking works correctly - isolated %s', async (isolate
26
26
expect ( result . stdout ) . toContain ( 'mocked-do-mock-factory.test.ts' )
27
27
expect ( result . exitCode ) . toBe ( 0 )
28
28
} )
29
+
30
+ test ( 'mocking dependency correctly invalidates it on rerun' , async ( ) => {
31
+ const { vitest, ctx } = await runVitest ( {
32
+ root : 'fixtures/mocking-watch' ,
33
+ watch : true ,
34
+ } )
35
+ onTestFinished ( async ( ) => {
36
+ await ctx . close ( )
37
+ await ctx . closingPromise
38
+ } )
39
+
40
+ await vitest . waitForStdout ( 'Waiting for file changes...' )
41
+
42
+ expect ( vitest . stderr ) . toBe ( '' )
43
+ expect ( vitest . stdout ) . toContain ( '1_mocked-on-watch-change.test.ts' )
44
+ expect ( vitest . stdout ) . toContain ( '2_not-mocked-import.test.ts' )
45
+
46
+ vitest . resetOutput ( )
47
+ editFile ( './fixtures/mocking-watch/1_mocked-on-watch-change.test.ts' , content => `${ content } \n` )
48
+
49
+ await vitest . waitForStdout ( 'Waiting for file changes...' )
50
+
51
+ expect ( vitest . stderr ) . toBe ( '' )
52
+ expect ( vitest . stdout ) . toContain ( '1_mocked-on-watch-change.test.ts' )
53
+ expect ( vitest . stdout ) . not . toContain ( '2_not-mocked-import.test.ts' )
54
+ } )
0 commit comments