import { expect } from 'expect'
+
import {
DynamicThreadPool,
PoolEvents,
let result = await pool.execute({
function: TaskFunctions.fibonacci
})
- expect(result).toBe(75025)
+ expect(result).toBe(354224848179262000000)
result = await pool.execute({
function: TaskFunctions.factorial
})
await pool.destroy()
const numberOfExitEvents = await exitPromise
expect(pool.started).toBe(false)
- expect(pool.emitter.eventNames()).toStrictEqual([])
+ expect(pool.emitter.eventNames()).toStrictEqual([
+ PoolEvents.busy,
+ PoolEvents.destroy
+ ])
expect(pool.readyEventEmitted).toBe(false)
expect(pool.workerNodes.length).toBe(0)
expect(numberOfExitEvents).toBe(min)
await waitWorkerEvents(longRunningPool, 'exit', max - min)
expect(longRunningPool.workerNodes.length).toBe(min)
expect(
- longRunningPool.workerChoiceStrategyContext.workerChoiceStrategies.get(
- longRunningPool.workerChoiceStrategyContext.workerChoiceStrategy
+ longRunningPool.workerChoiceStrategiesContext.workerChoiceStrategies.get(
+ longRunningPool.workerChoiceStrategiesContext
+ .defaultWorkerChoiceStrategy
).nextWorkerNodeKey
).toBeLessThan(longRunningPool.workerNodes.length)
// We need to clean up the resources after our test
})
it('Verify that a pool with zero worker works', async () => {
- const pool = new DynamicThreadPool(
- 0,
- max,
- './tests/worker-files/thread/testWorker.mjs'
- )
- expect(pool.starting).toBe(false)
for (const workerChoiceStrategy of Object.values(WorkerChoiceStrategies)) {
- pool.setWorkerChoiceStrategy(workerChoiceStrategy)
+ const pool = new DynamicThreadPool(
+ 0,
+ max,
+ './tests/worker-files/thread/testWorker.mjs',
+ {
+ workerChoiceStrategy
+ }
+ )
+ expect(pool.starting).toBe(false)
expect(pool.readyEventEmitted).toBe(false)
for (let run = 0; run < 2; run++) {
run % 2 !== 0 && pool.enableTasksQueue(true)
expect(pool.readyEventEmitted).toBe(false)
expect(pool.workerNodes.length).toBe(pool.info.minSize)
}
+ // We need to clean up the resources after our test
+ await pool.destroy()
}
- // We need to clean up the resources after our test
- await pool.destroy()
})
})