From c726f66c5c7ce127bfd2010a60fa07761f21cbd1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Sun, 24 Sep 2023 21:11:05 +0200 Subject: [PATCH] test: improve event emitter tests MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- tests/pools/abstract-pool.test.js | 8 ++++++++ tests/pools/cluster/dynamic.test.js | 5 +++++ tests/pools/cluster/fixed.test.js | 15 +++++++++++++++ tests/pools/thread/dynamic.test.js | 5 +++++ tests/pools/thread/fixed.test.js | 10 ++++++++++ 5 files changed, 43 insertions(+) diff --git a/tests/pools/abstract-pool.test.js b/tests/pools/abstract-pool.test.js index cb04292b..e6572cc1 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 a2b275fd..1e729eae 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 9ee37ad8..0994e9e9 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 0eab0381..1c5997cc 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 84871e73..42549b63 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) -- 2.34.1