import { expect } from 'expect'
+
import { FixedClusterPool, PoolEvents } from '../../../lib/index.cjs'
+import { DEFAULT_TASK_NAME } from '../../../lib/utils.cjs'
import { TaskFunctions } from '../../test-types.cjs'
import { waitPoolEvents, waitWorkerEvents } from '../../test-utils.cjs'
-import { DEFAULT_TASK_NAME } from '../../../lib/utils.cjs'
describe('Fixed cluster pool test suite', () => {
const numberOfWorkers = 8
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(numberOfWorkers)
await expect(pool.destroyWorkerNode(workerNodeKey)).resolves.toBeUndefined()
expect(disconnectEvent).toBe(1)
expect(exitEvent).toBe(1)
- expect(pool.workerNodes.length).toBe(numberOfWorkers - 1)
+ // Simulates an illegitimate worker node destroy and the minimum number of worker nodes is guaranteed
+ expect(pool.workerNodes.length).toBe(numberOfWorkers)
await pool.destroy()
})