X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Fworker%2Fabstract-worker.test.mjs;h=79f85cdb2030b6872c14ab74ae048d4b994707cd;hb=5c8b08294e04cba31be5e2e5c9962536c284f27b;hp=ee89911ce5b15bbe83075b94db38a3d1769fc370;hpb=d0bd5062d33c01a4ce0a75d5eb8f79b5fb51cd27;p=poolifier.git diff --git a/tests/worker/abstract-worker.test.mjs b/tests/worker/abstract-worker.test.mjs index ee89911c..79f85cdb 100644 --- a/tests/worker/abstract-worker.test.mjs +++ b/tests/worker/abstract-worker.test.mjs @@ -137,8 +137,12 @@ describe('Abstract worker test suite', () => { it('Verify that taskFunctions parameter with unique function is taken', () => { const worker = new ThreadWorker(() => {}) - expect(worker.taskFunctions.get(DEFAULT_TASK_NAME)).toBeInstanceOf(Object) - expect(worker.taskFunctions.get('fn1')).toBeInstanceOf(Object) + expect(worker.taskFunctions.get(DEFAULT_TASK_NAME)).toStrictEqual({ + taskFunction: expect.any(Function) + }) + expect(worker.taskFunctions.get('fn1')).toStrictEqual({ + taskFunction: expect.any(Function) + }) expect(worker.taskFunctions.size).toBe(2) expect(worker.taskFunctions.get(DEFAULT_TASK_NAME)).toStrictEqual( worker.taskFunctions.get('fn1') @@ -170,21 +174,19 @@ describe('Abstract worker test suite', () => { ) expect( () => new ThreadWorker({ fn1: { taskFunction: fn1, priority: '' } }) - ).toThrow(new TypeError("Invalid priority ''")) + ).toThrow(new TypeError("Invalid property 'priority': ''")) expect( () => new ThreadWorker({ fn1: { taskFunction: fn1, priority: -21 } }) - ).toThrow(new TypeError('Property priority must be between -20 and 19')) + ).toThrow(new RangeError("Property 'priority' must be between -20 and 19")) expect( () => new ThreadWorker({ fn1: { taskFunction: fn1, priority: 20 } }) - ).toThrow(new RangeError('Property priority must be between -20 and 19')) + ).toThrow(new RangeError("Property 'priority' must be between -20 and 19")) expect( () => new ThreadWorker({ fn1: { taskFunction: fn1, strategy: 'invalidStrategy' } }) - ).toThrow( - new RangeError("Invalid worker choice strategy 'invalidStrategy'") - ) + ).toThrow(new Error("Invalid worker choice strategy 'invalidStrategy'")) }) it('Verify that taskFunctions parameter with multiple task functions is taken', () => { @@ -195,9 +197,15 @@ describe('Abstract worker test suite', () => { return 2 } const worker = new ClusterWorker({ fn1, fn2 }) - expect(worker.taskFunctions.get(DEFAULT_TASK_NAME)).toBeInstanceOf(Object) - expect(worker.taskFunctions.get('fn1')).toBeInstanceOf(Object) - expect(worker.taskFunctions.get('fn2')).toBeInstanceOf(Object) + expect(worker.taskFunctions.get(DEFAULT_TASK_NAME)).toStrictEqual({ + taskFunction: expect.any(Function) + }) + expect(worker.taskFunctions.get('fn1')).toStrictEqual({ + taskFunction: expect.any(Function) + }) + expect(worker.taskFunctions.get('fn2')).toStrictEqual({ + taskFunction: expect.any(Function) + }) expect(worker.taskFunctions.size).toBe(3) expect(worker.taskFunctions.get(DEFAULT_TASK_NAME)).toStrictEqual( worker.taskFunctions.get('fn1') @@ -290,14 +298,57 @@ describe('Abstract worker test suite', () => { status: false, error: new TypeError('name parameter is an empty string') }) + expect(worker.addTaskFunction('fn2', 0)).toStrictEqual({ + status: false, + error: new TypeError( + "taskFunction object 'taskFunction' property 'undefined' is not a function" + ) + }) expect(worker.addTaskFunction('fn3', '')).toStrictEqual({ status: false, error: new TypeError( "taskFunction object 'taskFunction' property 'undefined' is not a function" ) }) - expect(worker.taskFunctions.get(DEFAULT_TASK_NAME)).toBeInstanceOf(Object) - expect(worker.taskFunctions.get('fn1')).toBeInstanceOf(Object) + expect(worker.addTaskFunction('fn2', { taskFunction: 0 })).toStrictEqual({ + status: false, + error: new TypeError( + "taskFunction object 'taskFunction' property '0' is not a function" + ) + }) + expect(worker.addTaskFunction('fn3', { taskFunction: '' })).toStrictEqual({ + status: false, + error: new TypeError( + "taskFunction object 'taskFunction' property '' is not a function" + ) + }) + expect( + worker.addTaskFunction('fn2', { taskFunction: () => {}, priority: -21 }) + ).toStrictEqual({ + status: false, + error: new RangeError("Property 'priority' must be between -20 and 19") + }) + expect( + worker.addTaskFunction('fn3', { taskFunction: () => {}, priority: 20 }) + ).toStrictEqual({ + status: false, + error: new RangeError("Property 'priority' must be between -20 and 19") + }) + expect( + worker.addTaskFunction('fn2', { + taskFunction: () => {}, + strategy: 'invalidStrategy' + }) + ).toStrictEqual({ + status: false, + error: new Error("Invalid worker choice strategy 'invalidStrategy'") + }) + expect(worker.taskFunctions.get(DEFAULT_TASK_NAME)).toStrictEqual({ + taskFunction: expect.any(Function) + }) + expect(worker.taskFunctions.get('fn1')).toStrictEqual({ + taskFunction: expect.any(Function) + }) expect(worker.taskFunctions.size).toBe(2) expect(worker.taskFunctions.get(DEFAULT_TASK_NAME)).toStrictEqual( worker.taskFunctions.get('fn1') @@ -309,24 +360,36 @@ describe('Abstract worker test suite', () => { ) }) worker.addTaskFunction('fn2', fn2) - expect(worker.taskFunctions.get(DEFAULT_TASK_NAME)).toBeInstanceOf(Object) - expect(worker.taskFunctions.get('fn1')).toBeInstanceOf(Object) - expect(worker.taskFunctions.get('fn2')).toBeInstanceOf(Object) + expect(worker.taskFunctions.get(DEFAULT_TASK_NAME)).toStrictEqual({ + taskFunction: expect.any(Function) + }) + expect(worker.taskFunctions.get('fn1')).toStrictEqual({ + taskFunction: expect.any(Function) + }) + expect(worker.taskFunctions.get('fn2')).toStrictEqual({ + taskFunction: expect.any(Function) + }) expect(worker.taskFunctions.size).toBe(3) expect(worker.taskFunctions.get(DEFAULT_TASK_NAME)).toStrictEqual( worker.taskFunctions.get('fn1') ) worker.addTaskFunction('fn1', fn1Replacement) - expect(worker.taskFunctions.get(DEFAULT_TASK_NAME)).toBeInstanceOf(Object) - expect(worker.taskFunctions.get('fn1')).toBeInstanceOf(Object) - expect(worker.taskFunctions.get('fn2')).toBeInstanceOf(Object) + expect(worker.taskFunctions.get(DEFAULT_TASK_NAME)).toStrictEqual({ + taskFunction: expect.any(Function) + }) + expect(worker.taskFunctions.get('fn1')).toStrictEqual({ + taskFunction: expect.any(Function) + }) + expect(worker.taskFunctions.get('fn2')).toStrictEqual({ + taskFunction: expect.any(Function) + }) expect(worker.taskFunctions.size).toBe(3) expect(worker.taskFunctions.get(DEFAULT_TASK_NAME)).toStrictEqual( worker.taskFunctions.get('fn1') ) }) - it('Verify that listTaskFunctionNames() is working', () => { + it('Verify that listTaskFunctionsProperties() is working', () => { const fn1 = () => { return 1 } @@ -357,9 +420,15 @@ describe('Abstract worker test suite', () => { status: false, error: new TypeError('name parameter is an empty string') }) - expect(worker.taskFunctions.get(DEFAULT_TASK_NAME)).toBeInstanceOf(Object) - expect(worker.taskFunctions.get('fn1')).toBeInstanceOf(Object) - expect(worker.taskFunctions.get('fn2')).toBeInstanceOf(Object) + expect(worker.taskFunctions.get(DEFAULT_TASK_NAME)).toStrictEqual({ + taskFunction: expect.any(Function) + }) + expect(worker.taskFunctions.get('fn1')).toStrictEqual({ + taskFunction: expect.any(Function) + }) + expect(worker.taskFunctions.get('fn2')).toStrictEqual({ + taskFunction: expect.any(Function) + }) expect(worker.taskFunctions.size).toBe(3) expect(worker.taskFunctions.get(DEFAULT_TASK_NAME)).toStrictEqual( worker.taskFunctions.get('fn1')