const { expect } = require('expect')
const { FixedThreadPool } = require('../../../lib/index')
-const WorkerFunctions = require('../../test-types')
+const { WorkerFunctions } = require('../../test-types')
const TestUtils = require('../../test-utils')
describe('Fixed thread pool test suite', () => {
await emptyPool.destroy()
})
- it('Choose worker round robin test', async () => {
- const results = new Set()
- for (let i = 0; i < numberOfThreads; i++) {
- results.add(pool.chooseWorker().threadId)
- }
- expect(results.size).toBe(numberOfThreads)
- })
-
it('Verify that the function is executed in a worker thread', async () => {
let result = await pool.execute({
function: WorkerFunctions.fibonacci
})
it('Verify that busy event is emitted', async () => {
- const promises = []
let poolBusy = 0
pool.emitter.on('busy', () => poolBusy++)
for (let i = 0; i < numberOfThreads * 2; i++) {
- promises.push(pool.execute())
+ pool.execute()
}
// The `busy` event is triggered when the number of submitted tasks at once reach the number of fixed pool workers.
// So in total numberOfThreads + 1 times for a loop submitting up to numberOfThreads * 2 tasks to the fixed pool.