X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Fpools%2Fcluster%2Ffixed.test.mjs;h=0397c797d53a547d1cf560c4520de2cadfafdd1e;hb=9373412afbf68f74e3c3ea30abe5753d85a5f7e7;hp=ed5882c4c70c3002936be718f4071802e0ff39ad;hpb=d35e571704515a8b729d3455e4784054f07c368f;p=poolifier.git diff --git a/tests/pools/cluster/fixed.test.mjs b/tests/pools/cluster/fixed.test.mjs index ed5882c4..0397c797 100644 --- a/tests/pools/cluster/fixed.test.mjs +++ b/tests/pools/cluster/fixed.test.mjs @@ -1,8 +1,11 @@ +import cluster from 'node:cluster' + 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 @@ -67,7 +70,7 @@ describe('Fixed cluster pool test suite', () => { let result = await pool.execute({ function: TaskFunctions.fibonacci }) - expect(result).toBe(75025) + expect(result).toBe(354224848179262000000) result = await pool.execute({ function: TaskFunctions.factorial }) @@ -269,7 +272,10 @@ describe('Fixed cluster pool test suite', () => { 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) @@ -281,6 +287,10 @@ describe('Fixed cluster pool test suite', () => { 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' }, @@ -291,7 +301,7 @@ describe('Fixed cluster pool test suite', () => { args: ['--use', 'http'], silent: true }) - expect({ ...pool.opts.settings, exec: workerFilePath }).toStrictEqual({ + expect(cluster.settings).toMatchObject({ args: ['--use', 'http'], silent: true, exec: workerFilePath @@ -323,7 +333,8 @@ describe('Fixed cluster pool test suite', () => { 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() })