feat: expose pool information
[poolifier.git] / tests / pools / abstract / abstract-pool.test.js
index 91c942f646b65b9de10ec6f40dba2f70aa333730..b41ab1adc0265986b7f03603a4ca6e8553f5a0f9 100644 (file)
@@ -5,7 +5,8 @@ const {
   FixedClusterPool,
   FixedThreadPool,
   PoolEvents,
-  WorkerChoiceStrategies
+  WorkerChoiceStrategies,
+  PoolTypes
 } = require('../../../lib')
 const { CircularArray } = require('../../../lib/circular-array')
 const { Queue } = require('../../../lib/queue')
@@ -274,6 +275,42 @@ describe('Abstract pool test suite', () => {
     await pool.destroy()
   })
 
+  it('Verify that pool info is set', async () => {
+    let pool = new FixedThreadPool(
+      numberOfWorkers,
+      './tests/worker-files/thread/testWorker.js'
+    )
+    expect(pool.info).toStrictEqual({
+      type: PoolTypes.fixed,
+      minSize: numberOfWorkers,
+      maxSize: numberOfWorkers,
+      workerNodes: numberOfWorkers,
+      idleWorkerNodes: numberOfWorkers,
+      busyWorkerNodes: 0,
+      runningTasks: 0,
+      queuedTasks: 0,
+      maxQueuedTasks: 0
+    })
+    await pool.destroy()
+    pool = new DynamicClusterPool(
+      numberOfWorkers,
+      numberOfWorkers * 2,
+      './tests/worker-files/thread/testWorker.js'
+    )
+    expect(pool.info).toStrictEqual({
+      type: PoolTypes.dynamic,
+      minSize: numberOfWorkers,
+      maxSize: numberOfWorkers * 2,
+      workerNodes: numberOfWorkers,
+      idleWorkerNodes: numberOfWorkers,
+      busyWorkerNodes: 0,
+      runningTasks: 0,
+      queuedTasks: 0,
+      maxQueuedTasks: 0
+    })
+    await pool.destroy()
+  })
+
   it('Simulate worker not found', async () => {
     const pool = new StubPoolWithRemoveAllWorker(
       numberOfWorkers,