build(deps-dev): apply updates
[poolifier.git] / tests / pools / thread / dynamic.test.mjs
index 77c5aaeb5afd3893c8c7eb265a7d65ed4d3cdda6..97bfbbfcebc4b17862c242279912a65d0918ef04 100644 (file)
@@ -1,8 +1,9 @@
 import { expect } from 'expect'
+
 import {
   DynamicThreadPool,
   PoolEvents,
-  WorkerChoiceStrategies
+  WorkerChoiceStrategies,
 } from '../../../lib/index.cjs'
 import { TaskFunctions } from '../../test-types.cjs'
 import { sleep, waitPoolEvents, waitWorkerEvents } from '../../test-utils.cjs'
@@ -15,17 +16,17 @@ describe('Dynamic thread pool test suite', () => {
     max,
     './tests/worker-files/thread/testWorker.mjs',
     {
-      errorHandler: e => console.error(e)
+      errorHandler: e => console.error(e),
     }
   )
 
   it('Verify that the function is executed in a worker thread', async () => {
     let result = await pool.execute({
-      function: TaskFunctions.fibonacci
+      function: TaskFunctions.fibonacci,
     })
-    expect(result).toBe(75025)
+    expect(result).toBe(354224848179262000000)
     result = await pool.execute({
-      function: TaskFunctions.factorial
+      function: TaskFunctions.factorial,
     })
     expect(result).toBe(9.33262154439441e157)
   })
@@ -66,12 +67,15 @@ describe('Dynamic thread pool test suite', () => {
     pool.emitter.on(PoolEvents.destroy, () => ++poolDestroy)
     expect(pool.emitter.eventNames()).toStrictEqual([
       PoolEvents.busy,
-      PoolEvents.destroy
+      PoolEvents.destroy,
     ])
     await pool.destroy()
     const numberOfExitEvents = await exitPromise
     expect(pool.started).toBe(false)
-    expect(pool.emitter.eventNames()).toStrictEqual([])
+    expect(pool.emitter.eventNames()).toStrictEqual([
+      PoolEvents.busy,
+      PoolEvents.destroy,
+    ])
     expect(pool.readyEventEmitted).toBe(false)
     expect(pool.workerNodes.length).toBe(0)
     expect(numberOfExitEvents).toBe(min)
@@ -104,7 +108,7 @@ describe('Dynamic thread pool test suite', () => {
       {
         errorHandler: e => console.error(e),
         onlineHandler: () => console.info('long executing worker is online'),
-        exitHandler: () => console.info('long executing worker exited')
+        exitHandler: () => console.info('long executing worker exited'),
       }
     )
     expect(longRunningPool.workerNodes.length).toBe(min)
@@ -115,8 +119,9 @@ describe('Dynamic thread pool test suite', () => {
     await waitWorkerEvents(longRunningPool, 'exit', max - min)
     expect(longRunningPool.workerNodes.length).toBe(min)
     expect(
-      longRunningPool.workerChoiceStrategyContext.workerChoiceStrategies.get(
-        longRunningPool.workerChoiceStrategyContext.workerChoiceStrategy
+      longRunningPool.workerChoiceStrategiesContext.workerChoiceStrategies.get(
+        longRunningPool.workerChoiceStrategiesContext
+          .defaultWorkerChoiceStrategy
       ).nextWorkerNodeKey
     ).toBeLessThan(longRunningPool.workerNodes.length)
     // We need to clean up the resources after our test
@@ -131,7 +136,7 @@ describe('Dynamic thread pool test suite', () => {
       {
         errorHandler: e => console.error(e),
         onlineHandler: () => console.info('long executing worker is online'),
-        exitHandler: () => console.info('long executing worker exited')
+        exitHandler: () => console.info('long executing worker exited'),
       }
     )
     expect(longRunningPool.workerNodes.length).toBe(min)
@@ -164,12 +169,13 @@ describe('Dynamic thread pool test suite', () => {
         max,
         './tests/worker-files/thread/testWorker.mjs',
         {
-          workerChoiceStrategy
+          workerChoiceStrategy,
         }
       )
       expect(pool.starting).toBe(false)
       expect(pool.readyEventEmitted).toBe(false)
       for (let run = 0; run < 2; run++) {
+        // eslint-disable-next-line @typescript-eslint/no-unused-expressions
         run % 2 !== 0 && pool.enableTasksQueue(true)
         const maxMultiplier = 4
         const promises = new Set()