Skip to content

Commit fe7b8ae

Browse files
authoredOct 3, 2024··
fix(web-worker): share mocker with main executor (#6623)
1 parent d289e7e commit fe7b8ae

File tree

4 files changed

+25
-0
lines changed

4 files changed

+25
-0
lines changed
 

‎packages/web-worker/src/runner.ts

+3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ import { VitestExecutor } from 'vitest/execute'
22

33
export class InlineWorkerRunner extends VitestExecutor {
44
constructor(options: any, private context: any) {
5+
// share the same mocker as main executor
6+
const mocker = (globalThis as any).__vitest_mocker__
57
super(options)
8+
this.mocker = (globalThis as any).__vitest_mocker__ = mocker
69
}
710

811
prepareContext(context: Record<string, any>) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export function workerDep() {
2+
return 'workerDep'
3+
}
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { workerDep } from './worker-dep'
2+
3+
self.postMessage(workerDep())
+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
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+
})

0 commit comments

Comments
 (0)
Please sign in to comment.