X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=inline;f=tests%2Ffixed.test.js;h=3b485fbf0ffd9db7fc35539f8a52db2164377183;hb=106744f7518d0f64ce85c4507157092083c2c4d4;hp=78e960bf547b8a65f91bdc6577765439f0021181;hpb=48a9385a1c0a0c93ee839ad4534f63d31af4e9e3;p=poolifier.git diff --git a/tests/fixed.test.js b/tests/fixed.test.js index 78e960bf..3b485fbf 100644 --- a/tests/fixed.test.js +++ b/tests/fixed.test.js @@ -2,8 +2,11 @@ const expect = require('expect') const FixedThreadPool = require('../lib/fixed') const numThreads = 10 const pool = new FixedThreadPool(numThreads, - './tests/testWorker.js', + './tests/workers/testWorker.js', { errorHandler: (e) => console.error(e), onlineHandler: () => console.log('worker is online') }) +const emptyPool = new FixedThreadPool(1, './tests/workers/emptyWorker.js') +const echoPool = new FixedThreadPool(1, './tests/workers/echoWorker.js') +const errorPool = new FixedThreadPool(1, './tests/workers/errorWorker.js', { errorHandler: (e) => console.error(e), onlineHandler: () => console.log('worker is online') }) describe('Fixed thread pool test suite ', () => { it('Choose worker round robin test', async () => { @@ -20,6 +23,37 @@ describe('Fixed thread pool test suite ', () => { expect(result).toBeFalsy() }) + it('Verify that is possible to invoke the execute method without input', async () => { + const result = await pool.execute() + expect(result).toBeDefined() + expect(result).toBeFalsy() + }) + + it('Verify that is possible to have a worker that return undefined', async () => { + const result = await emptyPool.execute() + expect(result).toBeFalsy() + }) + + it('Verify that data are sent to the worker correctly', async () => { + const data = { f: 10 } + const result = await echoPool.execute(data) + expect(result).toBeTruthy() + expect(result.f).toBe(data.f) + }) + + it('Verify that error handling is working properly', async () => { + const data = { f: 10 } + let inError + try { + await errorPool.execute(data) + } catch (e) { + inError = e + } + expect(inError).toBeTruthy() + expect(inError instanceof Error).toBeTruthy() + expect(inError.message).toBeTruthy() + }) + it('Shutdown test', async () => { let closedThreads = 0 pool.workers.forEach(w => { @@ -45,7 +79,7 @@ describe('Fixed thread pool test suite ', () => { }) it('Should work even without opts in input', async () => { - const pool1 = new FixedThreadPool(1, './tests/testWorker.js') + const pool1 = new FixedThreadPool(1, './tests/workers/testWorker.js') const res = await pool1.execute({ test: 'test' }) expect(res).toBeFalsy() })