X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Fpools%2Fabstract%2Fabstract-pool.test.js;h=b5a53487a490dd32b3d460389e25de7c5993feeb;hb=024daf59a8f93e67b7a307d1b5690ba564c80bab;hp=4b6f46a607b02b3f501d97b87acb588ffb0bf4c0;hpb=9adcefabee69d0c8a8f580c2512e35d2c54c8219;p=poolifier.git diff --git a/tests/pools/abstract/abstract-pool.test.js b/tests/pools/abstract/abstract-pool.test.js index 4b6f46a6..b5a53487 100644 --- a/tests/pools/abstract/abstract-pool.test.js +++ b/tests/pools/abstract/abstract-pool.test.js @@ -148,21 +148,22 @@ describe('Abstract pool test suite', () => { numberOfWorkers, './tests/worker-files/thread/testWorker.js', { - enableTasksQueue: true, - tasksQueueOptions: { concurrency: 0 } + workerChoiceStrategy: 'invalidStrategy' } ) - ).toThrowError("Invalid worker tasks concurrency '0'") + ).toThrowError("Invalid worker choice strategy 'invalidStrategy'") expect( () => new FixedThreadPool( numberOfWorkers, './tests/worker-files/thread/testWorker.js', { - workerChoiceStrategy: 'invalidStrategy' + workerChoiceStrategyOptions: 'invalidOptions' } ) - ).toThrowError("Invalid worker choice strategy 'invalidStrategy'") + ).toThrowError( + 'Invalid worker choice strategy options: must be a plain object' + ) expect( () => new FixedThreadPool( @@ -175,6 +176,51 @@ describe('Abstract pool test suite', () => { ).toThrowError( 'Invalid worker choice strategy options: must have a weight for each worker node' ) + expect( + () => + new FixedThreadPool( + numberOfWorkers, + './tests/worker-files/thread/testWorker.js', + { + workerChoiceStrategyOptions: { measurement: 'invalidMeasurement' } + } + ) + ).toThrowError( + "Invalid worker choice strategy options: invalid measurement 'invalidMeasurement'" + ) + expect( + () => + new FixedThreadPool( + numberOfWorkers, + './tests/worker-files/thread/testWorker.js', + { + enableTasksQueue: true, + tasksQueueOptions: { concurrency: 0 } + } + ) + ).toThrowError("Invalid worker tasks concurrency '0'") + expect( + () => + new FixedThreadPool( + numberOfWorkers, + './tests/worker-files/thread/testWorker.js', + { + enableTasksQueue: true, + tasksQueueOptions: 'invalidTasksQueueOptions' + } + ) + ).toThrowError('Invalid tasks queue options: must be a plain object') + expect( + () => + new FixedThreadPool( + numberOfWorkers, + './tests/worker-files/thread/testWorker.js', + { + enableTasksQueue: true, + tasksQueueOptions: { concurrency: 0.2 } + } + ) + ).toThrowError('Invalid worker tasks concurrency: must be an integer') }) it('Verify that worker choice strategy options can be set', async () => { @@ -283,6 +329,21 @@ describe('Abstract pool test suite', () => { median: false } }) + expect(() => + pool.setWorkerChoiceStrategyOptions('invalidWorkerChoiceStrategyOptions') + ).toThrowError( + 'Invalid worker choice strategy options: must be a plain object' + ) + expect(() => + pool.setWorkerChoiceStrategyOptions({ weights: {} }) + ).toThrowError( + 'Invalid worker choice strategy options: must have a weight for each worker node' + ) + expect(() => + pool.setWorkerChoiceStrategyOptions({ measurement: 'invalidMeasurement' }) + ).toThrowError( + "Invalid worker choice strategy options: invalid measurement 'invalidMeasurement'" + ) await pool.destroy() }) @@ -314,9 +375,15 @@ describe('Abstract pool test suite', () => { expect(pool.opts.tasksQueueOptions).toStrictEqual({ concurrency: 1 }) pool.setTasksQueueOptions({ concurrency: 2 }) expect(pool.opts.tasksQueueOptions).toStrictEqual({ concurrency: 2 }) + expect(() => + pool.setTasksQueueOptions('invalidTasksQueueOptions') + ).toThrowError('Invalid tasks queue options: must be a plain object') expect(() => pool.setTasksQueueOptions({ concurrency: 0 })).toThrowError( "Invalid worker tasks concurrency '0'" ) + expect(() => pool.setTasksQueueOptions({ concurrency: 0.2 })).toThrowError( + 'Invalid worker tasks concurrency: must be an integer' + ) await pool.destroy() }) @@ -388,6 +455,7 @@ describe('Abstract pool test suite', () => { executed: 0, executing: 0, queued: 0, + maxQueued: 0, failed: 0 }, runTime: { @@ -431,6 +499,7 @@ describe('Abstract pool test suite', () => { expect(workerNode.tasksQueue).toBeDefined() expect(workerNode.tasksQueue).toBeInstanceOf(Queue) expect(workerNode.tasksQueue.size).toBe(0) + expect(workerNode.tasksQueue.maxSize).toBe(0) } await pool.destroy() }) @@ -451,6 +520,7 @@ describe('Abstract pool test suite', () => { executed: 0, executing: maxMultiplier, queued: 0, + maxQueued: 0, failed: 0 }, runTime: { @@ -489,6 +559,7 @@ describe('Abstract pool test suite', () => { executed: maxMultiplier, executing: 0, queued: 0, + maxQueued: 0, failed: 0 }, runTime: { @@ -541,6 +612,7 @@ describe('Abstract pool test suite', () => { executed: expect.any(Number), executing: 0, queued: 0, + maxQueued: 0, failed: 0 }, runTime: { @@ -583,6 +655,7 @@ describe('Abstract pool test suite', () => { executed: 0, executing: 0, queued: 0, + maxQueued: 0, failed: 0 }, runTime: { @@ -706,6 +779,6 @@ describe('Abstract pool test suite', () => { const result2 = await pool.execute(data, 'factorial') expect(result2).toBe(3628800) const result3 = await pool.execute(data, 'fibonacci') - expect(result3).toBe(89) + expect(result3).toBe(55) }) })