test: improve coverage
[poolifier.git] / src / pools / abstract-pool.ts
index 493c5ccc0e33cb20a7b9d41739e48f13ea50ee78..534cb49080a7127f10a366cf9b99d6187f18fb61 100644 (file)
@@ -1284,7 +1284,8 @@ export abstract class AbstractPool<
   }
 
   private tasksStealingOnBackPressure (workerId: number): void {
-    if ((this.opts.tasksQueueOptions?.size as number) <= 1) {
+    const sizeOffset = 1
+    if ((this.opts.tasksQueueOptions?.size as number) <= sizeOffset) {
       return
     }
     const sourceWorkerNode =
@@ -1301,7 +1302,7 @@ export abstract class AbstractPool<
         workerNode.info.ready &&
         workerNode.info.id !== workerId &&
         workerNode.usage.tasks.queued <
-          (this.opts.tasksQueueOptions?.size as number) - 1
+          (this.opts.tasksQueueOptions?.size as number) - sizeOffset
       ) {
         const task = {
           ...(sourceWorkerNode.popTask() as Task<Data>),
@@ -1371,6 +1372,7 @@ export abstract class AbstractPool<
       }
       const workerNodeKey = promiseResponse.workerNodeKey
       this.afterTaskExecutionHook(workerNodeKey, message)
+      this.workerChoiceStrategyContext.update(workerNodeKey)
       this.promiseResponseMap.delete(taskId as string)
       if (
         this.opts.enableTasksQueue === true &&
@@ -1383,7 +1385,6 @@ export abstract class AbstractPool<
           this.dequeueTask(workerNodeKey) as Task<Data>
         )
       }
-      this.workerChoiceStrategyContext.update(workerNodeKey)
     }
   }
 
@@ -1436,7 +1437,7 @@ export abstract class AbstractPool<
     this.workerNodes.push(workerNode)
     const workerNodeKey = this.getWorkerNodeKeyByWorker(worker)
     if (workerNodeKey === -1) {
-      throw new Error('Worker node added not found')
+      throw new Error('Worker added not found in worker nodes')
     }
     return workerNodeKey
   }