From: Jérôme Benoit Date: Sun, 24 Sep 2023 19:11:05 +0000 (+0200) Subject: test: improve event emitter tests X-Git-Tag: v2.7.4~6 X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=c726f66c5c7ce127bfd2010a60fa07761f21cbd1;p=poolifier.git test: improve event emitter tests Signed-off-by: Jérôme Benoit --- diff --git a/tests/pools/abstract-pool.test.js b/tests/pools/abstract-pool.test.js index cb04292b2..e6572cc18 100644 --- a/tests/pools/abstract-pool.test.js +++ b/tests/pools/abstract-pool.test.js @@ -1102,6 +1102,7 @@ describe('Abstract pool test suite', () => { numberOfWorkers, './tests/worker-files/cluster/testWorker.js' ) + expect(pool.emitter.eventNames()).toStrictEqual([]) let poolInfo let poolReady = 0 pool.emitter.on(PoolEvents.ready, info => { @@ -1109,6 +1110,7 @@ describe('Abstract pool test suite', () => { poolInfo = info }) await waitPoolEvents(pool, PoolEvents.ready, 1) + expect(pool.emitter.eventNames()).toStrictEqual([PoolEvents.ready]) expect(poolReady).toBe(1) expect(poolInfo).toStrictEqual({ version, @@ -1134,6 +1136,7 @@ describe('Abstract pool test suite', () => { numberOfWorkers, './tests/worker-files/thread/testWorker.js' ) + expect(pool.emitter.eventNames()).toStrictEqual([]) const promises = new Set() let poolBusy = 0 let poolInfo @@ -1141,6 +1144,7 @@ describe('Abstract pool test suite', () => { ++poolBusy poolInfo = info }) + expect(pool.emitter.eventNames()).toStrictEqual([PoolEvents.busy]) for (let i = 0; i < numberOfWorkers * 2; i++) { promises.add(pool.execute()) } @@ -1173,6 +1177,7 @@ describe('Abstract pool test suite', () => { numberOfWorkers, './tests/worker-files/thread/testWorker.js' ) + expect(pool.emitter.eventNames()).toStrictEqual([]) const promises = new Set() let poolFull = 0 let poolInfo @@ -1180,6 +1185,7 @@ describe('Abstract pool test suite', () => { ++poolFull poolInfo = info }) + expect(pool.emitter.eventNames()).toStrictEqual([PoolEvents.full]) for (let i = 0; i < numberOfWorkers * 2; i++) { promises.add(pool.execute()) } @@ -1213,6 +1219,7 @@ describe('Abstract pool test suite', () => { } ) sinon.stub(pool, 'hasBackPressure').returns(true) + expect(pool.emitter.eventNames()).toStrictEqual([]) const promises = new Set() let poolBackPressure = 0 let poolInfo @@ -1220,6 +1227,7 @@ describe('Abstract pool test suite', () => { ++poolBackPressure poolInfo = info }) + expect(pool.emitter.eventNames()).toStrictEqual([PoolEvents.backPressure]) for (let i = 0; i < numberOfWorkers + 1; i++) { promises.add(pool.execute()) } diff --git a/tests/pools/cluster/dynamic.test.js b/tests/pools/cluster/dynamic.test.js index a2b275fde..1e729eaef 100644 --- a/tests/pools/cluster/dynamic.test.js +++ b/tests/pools/cluster/dynamic.test.js @@ -57,8 +57,13 @@ describe('Dynamic cluster pool test suite', () => { it('Shutdown test', async () => { const exitPromise = waitWorkerEvents(pool, 'exit', min) + expect(pool.emitter.eventNames()).toStrictEqual([PoolEvents.busy]) let poolDestroy = 0 pool.emitter.on(PoolEvents.destroy, () => ++poolDestroy) + expect(pool.emitter.eventNames()).toStrictEqual([ + PoolEvents.busy, + PoolEvents.destroy + ]) await pool.destroy() const numberOfExitEvents = await exitPromise expect(pool.started).toBe(false) diff --git a/tests/pools/cluster/fixed.test.js b/tests/pools/cluster/fixed.test.js index 9ee37ad83..0994e9e90 100644 --- a/tests/pools/cluster/fixed.test.js +++ b/tests/pools/cluster/fixed.test.js @@ -87,17 +87,21 @@ describe('Fixed cluster pool test suite', () => { errorHandler: e => console.error(e) } ) + expect(pool.emitter.eventNames()).toStrictEqual([]) let poolReady = 0 pool.emitter.on(PoolEvents.ready, () => ++poolReady) await waitPoolEvents(pool, PoolEvents.ready, 1) + expect(pool.emitter.eventNames()).toStrictEqual([PoolEvents.ready]) expect(poolReady).toBe(1) await pool.destroy() }) it("Verify that 'busy' event is emitted", async () => { + expect(pool.emitter.eventNames()).toStrictEqual([]) const promises = new Set() let poolBusy = 0 pool.emitter.on(PoolEvents.busy, () => ++poolBusy) + expect(pool.emitter.eventNames()).toStrictEqual([PoolEvents.busy]) for (let i = 0; i < numberOfWorkers * 2; i++) { promises.add(pool.execute()) } @@ -179,10 +183,12 @@ describe('Fixed cluster pool test suite', () => { it('Verify that error handling is working properly:sync', async () => { const data = { f: 10 } + expect(errorPool.emitter.eventNames()).toStrictEqual([]) let taskError errorPool.emitter.on(PoolEvents.taskError, e => { taskError = e }) + expect(errorPool.emitter.eventNames()).toStrictEqual([PoolEvents.taskError]) let inError try { await errorPool.execute(data) @@ -206,10 +212,14 @@ describe('Fixed cluster pool test suite', () => { it('Verify that error handling is working properly:async', async () => { const data = { f: 10 } + expect(asyncErrorPool.emitter.eventNames()).toStrictEqual([]) let taskError asyncErrorPool.emitter.on(PoolEvents.taskError, e => { taskError = e }) + expect(asyncErrorPool.emitter.eventNames()).toStrictEqual([ + PoolEvents.taskError + ]) let inError try { await asyncErrorPool.execute(data) @@ -242,8 +252,13 @@ describe('Fixed cluster pool test suite', () => { it('Shutdown test', async () => { const exitPromise = waitWorkerEvents(pool, 'exit', numberOfWorkers) + expect(pool.emitter.eventNames()).toStrictEqual([PoolEvents.busy]) let poolDestroy = 0 pool.emitter.on(PoolEvents.destroy, () => ++poolDestroy) + expect(pool.emitter.eventNames()).toStrictEqual([ + PoolEvents.busy, + PoolEvents.destroy + ]) await pool.destroy() const numberOfExitEvents = await exitPromise expect(pool.started).toBe(false) diff --git a/tests/pools/thread/dynamic.test.js b/tests/pools/thread/dynamic.test.js index 0eab03811..1c5997ccf 100644 --- a/tests/pools/thread/dynamic.test.js +++ b/tests/pools/thread/dynamic.test.js @@ -57,8 +57,13 @@ describe('Dynamic thread pool test suite', () => { it('Shutdown test', async () => { const exitPromise = waitWorkerEvents(pool, 'exit', min) + expect(pool.emitter.eventNames()).toStrictEqual([PoolEvents.busy]) let poolDestroy = 0 pool.emitter.on(PoolEvents.destroy, () => ++poolDestroy) + expect(pool.emitter.eventNames()).toStrictEqual([ + PoolEvents.busy, + PoolEvents.destroy + ]) await pool.destroy() const numberOfExitEvents = await exitPromise expect(pool.started).toBe(false) diff --git a/tests/pools/thread/fixed.test.js b/tests/pools/thread/fixed.test.js index 84871e738..42549b63c 100644 --- a/tests/pools/thread/fixed.test.js +++ b/tests/pools/thread/fixed.test.js @@ -87,17 +87,21 @@ describe('Fixed thread pool test suite', () => { errorHandler: e => console.error(e) } ) + expect(pool.emitter.eventNames()).toStrictEqual([]) let poolReady = 0 pool.emitter.on(PoolEvents.ready, () => ++poolReady) await waitPoolEvents(pool, PoolEvents.ready, 1) + expect(pool.emitter.eventNames()).toStrictEqual([PoolEvents.ready]) expect(poolReady).toBe(1) await pool.destroy() }) it("Verify that 'busy' event is emitted", async () => { const promises = new Set() + expect(pool.emitter.eventNames()).toStrictEqual([]) let poolBusy = 0 pool.emitter.on(PoolEvents.busy, () => ++poolBusy) + expect(pool.emitter.eventNames()).toStrictEqual([PoolEvents.busy]) for (let i = 0; i < numberOfThreads * 2; i++) { promises.add(pool.execute()) } @@ -205,10 +209,12 @@ describe('Fixed thread pool test suite', () => { it('Verify that error handling is working properly:sync', async () => { const data = { f: 10 } + expect(errorPool.emitter.eventNames()).toStrictEqual([]) let taskError errorPool.emitter.on(PoolEvents.taskError, e => { taskError = e }) + expect(errorPool.emitter.eventNames()).toStrictEqual([PoolEvents.taskError]) let inError try { await errorPool.execute(data) @@ -234,10 +240,14 @@ describe('Fixed thread pool test suite', () => { it('Verify that error handling is working properly:async', async () => { const data = { f: 10 } + expect(asyncErrorPool.emitter.eventNames()).toStrictEqual([]) let taskError asyncErrorPool.emitter.on(PoolEvents.taskError, e => { taskError = e }) + expect(asyncErrorPool.emitter.eventNames()).toStrictEqual([ + PoolEvents.taskError + ]) let inError try { await asyncErrorPool.execute(data)