From: Jérôme Benoit Date: Sat, 6 May 2023 20:22:32 +0000 (+0200) Subject: refactor: simplify worker inputs checking code X-Git-Tag: v2.4.12~3 X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=f34fdabe7562f0c1da21643162d5b6c8ad298812;p=poolifier.git refactor: simplify worker inputs checking code Signed-off-by: Jérôme Benoit --- diff --git a/src/worker/abstract-worker.ts b/src/worker/abstract-worker.ts index 12fb67af..16373669 100644 --- a/src/worker/abstract-worker.ts +++ b/src/worker/abstract-worker.ts @@ -103,14 +103,6 @@ export abstract class AbstractWorker< if (taskFunctions == null) { throw new Error('taskFunctions parameter is mandatory') } - if ( - typeof taskFunctions !== 'function' && - typeof taskFunctions !== 'object' - ) { - throw new TypeError( - 'taskFunctions parameter is not a function or an object' - ) - } this.taskFunctions = new Map>() if (typeof taskFunctions === 'function') { this.taskFunctions.set(DEFAULT_FUNCTION_NAME, taskFunctions.bind(this)) @@ -132,7 +124,9 @@ export abstract class AbstractWorker< throw new Error('taskFunctions parameter object is empty') } } else { - throw new TypeError('taskFunctions parameter is not an object literal') + throw new TypeError( + 'taskFunctions parameter is not a function or a plain object' + ) } } diff --git a/tests/worker/abstract-worker.test.js b/tests/worker/abstract-worker.test.js index 3c0beda3..260e5b88 100644 --- a/tests/worker/abstract-worker.test.js +++ b/tests/worker/abstract-worker.test.js @@ -33,39 +33,65 @@ describe('Abstract worker test suite', () => { ) }) - it('Verify that taskFunctions parameter is a function or an object', () => { + it('Verify that taskFunctions parameter is a function or a plain object', () => { expect(() => new ClusterWorker(0)).toThrowError( - new TypeError('taskFunctions parameter is not a function or an object') + new TypeError( + 'taskFunctions parameter is not a function or a plain object' + ) ) expect(() => new ClusterWorker('')).toThrowError( - new TypeError('taskFunctions parameter is not a function or an object') + new TypeError( + 'taskFunctions parameter is not a function or a plain object' + ) ) expect(() => new ClusterWorker(true)).toThrowError( - new TypeError('taskFunctions parameter is not a function or an object') + new TypeError( + 'taskFunctions parameter is not a function or a plain object' + ) ) - }) - - it('Verify that taskFunctions parameter is not an empty object literal', () => { expect(() => new ClusterWorker([])).toThrowError( - new TypeError('taskFunctions parameter is not an object literal') + new TypeError( + 'taskFunctions parameter is not a function or a plain object' + ) ) expect(() => new ClusterWorker(new Map())).toThrowError( - new TypeError('taskFunctions parameter is not an object literal') + new TypeError( + 'taskFunctions parameter is not a function or a plain object' + ) ) expect(() => new ClusterWorker(new Set())).toThrowError( - new TypeError('taskFunctions parameter is not an object literal') + new TypeError( + 'taskFunctions parameter is not a function or a plain object' + ) ) expect(() => new ClusterWorker(new WeakMap())).toThrowError( - new TypeError('taskFunctions parameter is not an object literal') + new TypeError( + 'taskFunctions parameter is not a function or a plain object' + ) ) expect(() => new ClusterWorker(new WeakSet())).toThrowError( - new TypeError('taskFunctions parameter is not an object literal') + new TypeError( + 'taskFunctions parameter is not a function or a plain object' + ) ) + }) + + it('Verify that taskFunctions parameter is not an empty object', () => { expect(() => new ClusterWorker({})).toThrowError( new Error('taskFunctions parameter object is empty') ) }) + it('Verify that taskFunctions parameter with multiple task functions contains function', () => { + const fn1 = () => { + return 1 + } + const fn2 = '' + expect(() => new ThreadWorker({ fn1, fn2 })).toThrowError( + new TypeError('A taskFunctions parameter object value is not a function') + ) + }) + it('Verify that taskFunctions parameter with multiple task functions is taken', () => { const fn1 = () => { return 1