build: cleanup TS configuration
[poolifier.git] / tests / pools / cluster / fixed.test.js
index a5790db075f400b3ff4ff93dd6c0a01a3beb62fd..42e13a9a83348f8b4d8c425f4f71ae32c77d6a7e 100644 (file)
@@ -2,9 +2,10 @@ const { expect } = require('expect')
 const { FixedClusterPool, PoolEvents } = require('../../../lib')
 const { TaskFunctions } = require('../../test-types')
 const { waitPoolEvents, waitWorkerEvents } = require('../../test-utils')
+const { DEFAULT_TASK_NAME } = require('../../../lib/utils')
 
 describe('Fixed cluster pool test suite', () => {
-  const numberOfWorkers = 6
+  const numberOfWorkers = 8
   const tasksConcurrency = 2
   const pool = new FixedClusterPool(
     numberOfWorkers,
@@ -124,7 +125,9 @@ describe('Fixed cluster pool test suite', () => {
       expect(workerNode.usage.tasks.maxQueued).toBe(
         maxMultiplier - queuePool.opts.tasksQueueOptions.concurrency
       )
+      expect(workerNode.usage.tasks.stolen).toBe(0)
     }
+    expect(queuePool.info.executedTasks).toBe(0)
     expect(queuePool.info.executingTasks).toBe(
       numberOfWorkers * queuePool.opts.tasksQueueOptions.concurrency
     )
@@ -137,15 +140,29 @@ describe('Fixed cluster pool test suite', () => {
         (maxMultiplier - queuePool.opts.tasksQueueOptions.concurrency)
     )
     expect(queuePool.info.backPressure).toBe(false)
+    expect(queuePool.info.stolenTasks).toBe(0)
     await Promise.all(promises)
     for (const workerNode of queuePool.workerNodes) {
-      expect(workerNode.usage.tasks.executing).toBe(0)
+      expect(workerNode.usage.tasks.executing).toBeGreaterThanOrEqual(0)
+      expect(workerNode.usage.tasks.executing).toBeLessThanOrEqual(
+        numberOfWorkers * maxMultiplier
+      )
       expect(workerNode.usage.tasks.executed).toBe(maxMultiplier)
       expect(workerNode.usage.tasks.queued).toBe(0)
       expect(workerNode.usage.tasks.maxQueued).toBe(
         maxMultiplier - queuePool.opts.tasksQueueOptions.concurrency
       )
+      expect(workerNode.usage.tasks.stolen).toBeGreaterThanOrEqual(0)
+      expect(workerNode.usage.tasks.stolen).toBeLessThanOrEqual(
+        numberOfWorkers * maxMultiplier
+      )
     }
+    expect(queuePool.info.executedTasks).toBe(numberOfWorkers * maxMultiplier)
+    expect(queuePool.info.backPressure).toBe(false)
+    expect(queuePool.info.stolenTasks).toBeGreaterThanOrEqual(0)
+    expect(queuePool.info.stolenTasks).toBeLessThanOrEqual(
+      numberOfWorkers * maxMultiplier
+    )
   })
 
   it('Verify that is possible to have a worker that return undefined', async () => {
@@ -175,7 +192,7 @@ describe('Fixed cluster pool test suite', () => {
     expect(typeof inError === 'string').toBe(true)
     expect(inError).toBe('Error Message from ClusterWorker')
     expect(taskError).toStrictEqual({
-      name: 'default',
+      name: DEFAULT_TASK_NAME,
       message: 'Error Message from ClusterWorker',
       data
     })
@@ -202,7 +219,7 @@ describe('Fixed cluster pool test suite', () => {
     expect(typeof inError === 'string').toBe(true)
     expect(inError).toBe('Error Message from ClusterWorker:async')
     expect(taskError).toStrictEqual({
-      name: 'default',
+      name: DEFAULT_TASK_NAME,
       message: 'Error Message from ClusterWorker:async',
       data
     })