30 lines
790 B
TypeScript
30 lines
790 B
TypeScript
import { join } from 'path'
|
|
import { Worker } from 'worker_threads'
|
|
|
|
import test from 'ava'
|
|
|
|
import { Animal, Kind, DEFAULT_COST } from '../index'
|
|
|
|
const t =
|
|
process.arch === 'arm64' && process.platform === 'linux' ? test.skip : test
|
|
|
|
t('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()
|
|
})
|
|
}),
|
|
)
|
|
})
|