File tree 4 files changed +25
-0
lines changed
4 files changed +25
-0
lines changed Original file line number Diff line number Diff line change @@ -2,7 +2,10 @@ import { VitestExecutor } from 'vitest/execute'
2
2
3
3
export class InlineWorkerRunner extends VitestExecutor {
4
4
constructor ( options : any , private context : any ) {
5
+ // share the same mocker as main executor
6
+ const mocker = ( globalThis as any ) . __vitest_mocker__
5
7
super ( options )
8
+ this . mocker = ( globalThis as any ) . __vitest_mocker__ = mocker
6
9
}
7
10
8
11
prepareContext ( context : Record < string , any > ) {
Original file line number Diff line number Diff line change
1
+ export function workerDep ( ) {
2
+ return 'workerDep'
3
+ }
Original file line number Diff line number Diff line change
1
+ import { workerDep } from './worker-dep'
2
+
3
+ self . postMessage ( workerDep ( ) )
Original file line number Diff line number Diff line change
1
+ import '@vitest/web-worker'
2
+ import { expect , test , vi } from 'vitest'
3
+ import { workerDep } from '../src/web-worker/mock/worker-dep'
4
+
5
+ vi . mock ( import ( '../src/web-worker/mock/worker-dep' ) , ( ) => ( { workerDep : ( ) => 'mocked' } ) )
6
+
7
+ test ( 'mock' , async ( ) => {
8
+ expect ( workerDep ( ) ) . toMatchInlineSnapshot ( `"mocked"` )
9
+ const worker = new Worker ( new URL ( '../src/web-worker/mock/worker' , import . meta. url ) )
10
+ const data = await new Promise ( ( resolve ) => {
11
+ worker . addEventListener ( 'message' , ( e ) => {
12
+ resolve ( e . data )
13
+ } )
14
+ } )
15
+ expect ( data ) . toMatchInlineSnapshot ( `"mocked"` )
16
+ } )
You can’t perform that action at this time.
0 commit comments