+import cluster from 'node:cluster'
+
import { expect } from 'expect'
import { FixedClusterPool, PoolEvents } from '../../../lib/index.cjs'
let result = await pool.execute({
function: TaskFunctions.fibonacci
})
- expect(result).toBe(75025)
+ expect(result).toBe(354224848179262000000)
result = await pool.execute({
function: TaskFunctions.factorial
})
let pool = new FixedClusterPool(numberOfWorkers, workerFilePath)
expect(pool.opts.env).toBeUndefined()
expect(pool.opts.settings).toBeUndefined()
+ expect(cluster.settings).toMatchObject({
+ exec: workerFilePath,
+ silent: false
+ })
await pool.destroy()
pool = new FixedClusterPool(numberOfWorkers, workerFilePath, {
env: { TEST: 'test' },
args: ['--use', 'http'],
silent: true
})
- expect({ ...pool.opts.settings, exec: workerFilePath }).toStrictEqual({
+ expect(cluster.settings).toMatchObject({
args: ['--use', 'http'],
silent: true,
exec: workerFilePath
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()
})