@vitest/web-worker
Web Worker support for Vitest testing. Doesn't require JSDom.
Simulates Web Worker, but in the same thread. Supports both new Worker(url)
and import from './worker?worker
.
Installing
npm install -D @vitest/web-worker
pnpm install -D @vitest/web-worker
yarn install -D @vitest/web-worker
Usage
Just import @vitest/web-worker
in your test file to test only in current suite.
Or add @vitest/web-worker
in your setupFiles
, if you want to have a global support.
import { defineConfig } from 'vitest/node'
export default defineConfig({
test: {
setupFiles: ['@vitest/web-worker'],
},
})
Examples
import '@vitest/web-worker'
import MyWorker from '../worker?worker'
self.onmessage = (e) => {
self.postMessage(`${e.data} world`)
}
let worker = new MyWorker()
worker = new Worker(new URL('../src/worker.ts', import.meta.url))
worker.postMessage('hello')
worker.onmessage = (e) => {
}
Notice
- Does not support
onmessage = () => {}
. Please, use self.onmessage = () => {}
.