napi-rs/examples/napi/__test__/worker-thread.spec.ts
LongYinan 9f3fbaa8e0
fix(napi): race issues with Node.js worker_thread (#1081)
Co-authored-by: Jan Piotrowski <piotrowski+github@gmail.com>
2022-03-05 14:14:32 +08:00

27 lines
704 B
TypeScript

import { join } from 'path'
import { Worker } from 'worker_threads'
import test from 'ava'
import { Animal, Kind, DEFAULT_COST } from '../index'
test('should be able to require in worker thread', async (t) => {
await Promise.all(
Array.from({ length: 100 }).map(() => {
const w = new Worker(join(__dirname, 'worker.js'))
return new Promise<void>((resolve, reject) => {
w.on('message', (msg) => {
t.is(msg, Animal.withKind(Kind.Cat).whoami() + DEFAULT_COST)
resolve()
})
w.on('error', (err) => {
reject(err)
})
})
.then(() => w.terminate())
.then(() => {
t.pass()
})
}),
)
})