fix: fix pool statuses semantic
[poolifier.git] / tests / pools / cluster / fixed.test.js
index 48455f18011ded1507929a5a74bb06077fda45af..f71529a911949f285d0c54ebd8be5b27d67d0e3d 100644 (file)
@@ -1,7 +1,7 @@
 const { expect } = require('expect')
 const { FixedClusterPool, PoolEvents } = require('../../../lib')
 const { WorkerFunctions } = require('../../test-types')
-const { waitWorkerEvents } = require('../../test-utils')
+const { waitPoolEvents, waitWorkerEvents } = require('../../test-utils')
 
 describe('Fixed cluster pool test suite', () => {
   const numberOfWorkers = 6
@@ -74,10 +74,24 @@ describe('Fixed cluster pool test suite', () => {
 
   it('Verify that is possible to invoke the execute() method without input', async () => {
     const result = await pool.execute()
-    expect(result).toBe(false)
+    expect(result).toStrictEqual({ ok: 1 })
   })
 
-  it("Verify that 'busy' event is emitted", async () => {
+  it("Verify that 'ready' event is emitted", async () => {
+    const pool1 = new FixedClusterPool(
+      numberOfWorkers,
+      './tests/worker-files/cluster/testWorker.js',
+      {
+        errorHandler: e => console.error(e)
+      }
+    )
+    let poolReady = 0
+    pool1.emitter.on(PoolEvents.ready, () => ++poolReady)
+    await waitPoolEvents(pool1, PoolEvents.ready, 1)
+    expect(poolReady).toBe(1)
+  })
+
+  it("Verify that 'busy' event is emitted", () => {
     let poolBusy = 0
     pool.emitter.on(PoolEvents.busy, () => ++poolBusy)
     for (let i = 0; i < numberOfWorkers * 2; i++) {
@@ -147,7 +161,7 @@ describe('Fixed cluster pool test suite', () => {
     expect(typeof inError === 'string').toBe(true)
     expect(inError).toBe('Error Message from ClusterWorker')
     expect(taskError).toStrictEqual({
-      workerId: expect.any(Number),
+      name: 'default',
       message: 'Error Message from ClusterWorker',
       data
     })
@@ -174,7 +188,7 @@ describe('Fixed cluster pool test suite', () => {
     expect(typeof inError === 'string').toBe(true)
     expect(inError).toBe('Error Message from ClusterWorker:async')
     expect(taskError).toStrictEqual({
-      workerId: expect.any(Number),
+      name: 'default',
       message: 'Error Message from ClusterWorker:async',
       data
     })
@@ -230,7 +244,7 @@ describe('Fixed cluster pool test suite', () => {
       './tests/worker-files/cluster/testWorker.js'
     )
     const res = await pool1.execute()
-    expect(res).toBe(false)
+    expect(res).toStrictEqual({ ok: 1 })
     // We need to clean up the resources after our test
     await pool1.destroy()
   })
@@ -239,6 +253,6 @@ describe('Fixed cluster pool test suite', () => {
     expect(
       () =>
         new FixedClusterPool(0, './tests/worker-files/cluster/testWorker.js')
-    ).toThrowError('Cannot instantiate a fixed pool with no worker')
+    ).toThrowError('Cannot instantiate a fixed pool with zero worker')
   })
 })