File tree 3 files changed +16
-2
lines changed
3 files changed +16
-2
lines changed Original file line number Diff line number Diff line change 1
1
import { funcA } from './A'
2
+ import { funcB } from './B'
2
3
3
4
export function main ( ) {
4
5
return funcA ( )
5
6
}
7
+
8
+ export function mainB ( ) {
9
+ return funcB ( )
10
+ }
Original file line number Diff line number Diff line change 1
1
import { expect , test , vi } from 'vitest'
2
- import { main } from '../src/main.js'
2
+ import { main , mainB } from '../src/main.js'
3
3
import x from '../src/export-default-circle-index'
4
4
5
5
vi . mock ( '../src/A' , async ( ) => ( {
6
6
...( await vi . importActual < any > ( '../src/A' ) ) ,
7
7
funcA : ( ) => 'mockedA' ,
8
8
} ) )
9
9
10
+ vi . mock ( '../src/B' , async ( ) => ( {
11
+ ...( await vi . importActual < any > ( '../src/B' ) ) ,
12
+ funcB : ( ) => 'mockedB' ,
13
+ } ) )
14
+
10
15
vi . mock ( '../src/export-default-circle-b' )
11
16
12
17
test ( 'can import actual inside mock factory' , ( ) => {
13
18
expect ( main ( ) ) . toBe ( 'mockedA' )
14
19
} )
15
20
21
+ test ( 'can import in top level and inside mock factory' , ( ) => {
22
+ expect ( mainB ( ) ) . toBe ( 'mockedB' )
23
+ } )
24
+
16
25
test ( 'can mock a circular dependency' , ( ) => {
17
26
expect ( x ( ) ) . toBe ( undefined )
18
27
} )
Original file line number Diff line number Diff line change @@ -193,7 +193,7 @@ export class ViteNodeRunner {
193
193
const getStack = ( ) => `stack:\n${ [ ...callstack , fsPath ] . reverse ( ) . map ( p => ` - ${ p } ` ) . join ( '\n' ) } `
194
194
195
195
// check circular dependency
196
- if ( callstack . includes ( fsPath ) || callstack . some ( c => this . moduleCache . get ( c ) . importers ?. has ( fsPath ) ) ) {
196
+ if ( callstack . includes ( fsPath ) || callstack . some ( c => this . moduleCache . get ( c ) . importers ?. has ( fsPath ) ) || mod . importers . has ( importee ) ) {
197
197
if ( mod . exports )
198
198
return mod . exports
199
199
}
You can’t perform that action at this time.
0 commit comments