X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Fpools%2Fcluster%2Ffixed.test.js;h=b9c7d676d0404c7787e2fd8a00560e4167b88290;hb=50e66724ecb17b83dfb87b1128ca9674f9b14e03;hp=e958374139bc560167bc61c420a278394283a7ef;hpb=3f7eb773a2c8775fa263b696b6a611e484e437a8;p=poolifier.git diff --git a/tests/pools/cluster/fixed.test.js b/tests/pools/cluster/fixed.test.js index e9583741..b9c7d676 100644 --- a/tests/pools/cluster/fixed.test.js +++ b/tests/pools/cluster/fixed.test.js @@ -1,6 +1,6 @@ const { expect } = require('expect') -const { FixedClusterPool } = require('../../../lib/index') -const WorkerFunctions = require('../../test-types') +const { FixedClusterPool, PoolEvents } = require('../../../lib/index') +const { WorkerFunctions } = require('../../test-types') const TestUtils = require('../../test-utils') describe('Fixed cluster pool test suite', () => { @@ -49,14 +49,6 @@ describe('Fixed cluster pool test suite', () => { await emptyPool.destroy() }) - it('Choose worker round robin test', async () => { - const results = new Set() - for (let i = 0; i < numberOfWorkers; i++) { - results.add(pool.chooseWorker().id) - } - expect(results.size).toBe(numberOfWorkers) - }) - it('Verify that the function is executed in a worker cluster', async () => { let result = await pool.execute({ function: WorkerFunctions.fibonacci @@ -73,12 +65,11 @@ describe('Fixed cluster pool test suite', () => { expect(result).toBe(false) }) - it('Verify that busy event is emitted', async () => { - const promises = [] + it("Verify that 'busy' event is emitted", async () => { let poolBusy = 0 - pool.emitter.on('busy', () => poolBusy++) + pool.emitter.on(PoolEvents.busy, () => ++poolBusy) for (let i = 0; i < numberOfWorkers * 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 numberOfWorkers + 1 times for a loop submitting up to numberOfWorkers * 2 tasks to the fixed pool. @@ -124,9 +115,9 @@ describe('Fixed cluster pool test suite', () => { it('Verify that async function is working properly', async () => { const data = { f: 10 } - const startTime = Date.now() + const startTime = performance.now() const result = await asyncPool.execute(data) - const usedTime = Date.now() - startTime + const usedTime = performance.now() - startTime expect(result).toStrictEqual(data) expect(usedTime).toBeGreaterThanOrEqual(2000) }) @@ -138,6 +129,29 @@ describe('Fixed cluster pool test suite', () => { expect(numberOfExitEvents).toBe(numberOfWorkers) }) + it('Verify that cluster pool options are checked', async () => { + const workerFilePath = './tests/worker-files/cluster/testWorker.js' + let pool1 = new FixedClusterPool(numberOfWorkers, workerFilePath) + expect(pool1.opts.env).toBeUndefined() + expect(pool1.opts.settings).toBeUndefined() + await pool1.destroy() + pool1 = new FixedClusterPool(numberOfWorkers, workerFilePath, { + env: { TEST: 'test' }, + settings: { args: ['--use', 'http'], silent: true } + }) + expect(pool1.opts.env).toStrictEqual({ TEST: 'test' }) + expect(pool1.opts.settings).toStrictEqual({ + args: ['--use', 'http'], + silent: true + }) + expect({ ...pool1.opts.settings, exec: workerFilePath }).toStrictEqual({ + args: ['--use', 'http'], + silent: true, + exec: workerFilePath + }) + await pool1.destroy() + }) + it('Should work even without opts in input', async () => { const pool1 = new FixedClusterPool( numberOfWorkers,