test: cleanup sinon import
[poolifier.git] / tests / pools / abstract-pool.test.mjs
index 09a21c9d1fb3a57fb654c5f29c44adf703c025ba..041c62a2b1277c179d689dbe182d6b382fc55cef 100644 (file)
@@ -1,5 +1,7 @@
 import { EventEmitterAsyncResource } from 'node:events'
+import { dirname, join } from 'node:path'
 import { readFileSync } from 'node:fs'
+import { fileURLToPath } from 'node:url'
 import { expect } from 'expect'
 import { restore, stub } from 'sinon'
 import {
@@ -19,7 +21,12 @@ import { waitPoolEvents } from '../test-utils.js'
 import { WorkerNode } from '../../lib/pools/worker-node.js'
 
 describe('Abstract pool test suite', () => {
-  const version = JSON.parse(readFileSync('./package.json', 'utf8')).version
+  const version = JSON.parse(
+    readFileSync(
+      join(dirname(fileURLToPath(import.meta.url)), '../..', 'package.json'),
+      'utf8'
+    )
+  ).version
   const numberOfWorkers = 2
   class StubPoolWithIsMain extends FixedThreadPool {
     isMain () {
@@ -36,7 +43,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new StubPoolWithIsMain(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             errorHandler: e => console.error(e)
           }
@@ -51,7 +58,7 @@ describe('Abstract pool test suite', () => {
   it('Verify that pool statuses properties are set', async () => {
     const pool = new FixedThreadPool(
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     expect(pool.starting).toBe(false)
     expect(pool.started).toBe(true)
@@ -84,7 +91,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           undefined,
-          './tests/worker-files/thread/testWorker.js'
+          './tests/worker-files/thread/testWorker.mjs'
         )
     ).toThrowError(
       new Error(
@@ -107,7 +114,7 @@ describe('Abstract pool test suite', () => {
   it('Verify that a non integer number of workers is checked', () => {
     expect(
       () =>
-        new FixedThreadPool(0.25, './tests/worker-files/thread/testWorker.js')
+        new FixedThreadPool(0.25, './tests/worker-files/thread/testWorker.mjs')
     ).toThrowError(
       new TypeError(
         'Cannot instantiate a pool with a non safe integer number of workers'
@@ -133,7 +140,7 @@ describe('Abstract pool test suite', () => {
         new DynamicThreadPool(
           0.5,
           1,
-          './tests/worker-files/thread/testWorker.js'
+          './tests/worker-files/thread/testWorker.mjs'
         )
     ).toThrowError(
       new TypeError(
@@ -154,7 +161,11 @@ describe('Abstract pool test suite', () => {
     )
     expect(
       () =>
-        new DynamicThreadPool(2, 1, './tests/worker-files/thread/testWorker.js')
+        new DynamicThreadPool(
+          2,
+          1,
+          './tests/worker-files/thread/testWorker.mjs'
+        )
     ).toThrowError(
       new RangeError(
         'Cannot instantiate a dynamic pool with a maximum pool size inferior to the minimum pool size'
@@ -162,7 +173,11 @@ describe('Abstract pool test suite', () => {
     )
     expect(
       () =>
-        new DynamicThreadPool(0, 0, './tests/worker-files/thread/testWorker.js')
+        new DynamicThreadPool(
+          0,
+          0,
+          './tests/worker-files/thread/testWorker.mjs'
+        )
     ).toThrowError(
       new RangeError(
         'Cannot instantiate a dynamic pool with a maximum pool size equal to zero'
@@ -185,7 +200,7 @@ describe('Abstract pool test suite', () => {
   it('Verify that pool options are checked', async () => {
     let pool = new FixedThreadPool(
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     expect(pool.emitter).toBeInstanceOf(EventEmitterAsyncResource)
     expect(pool.opts).toStrictEqual({
@@ -220,7 +235,7 @@ describe('Abstract pool test suite', () => {
     const testHandler = () => console.info('test handler executed')
     pool = new FixedThreadPool(
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       {
         workerChoiceStrategy: WorkerChoiceStrategies.LEAST_USED,
         workerChoiceStrategyOptions: {
@@ -282,12 +297,12 @@ describe('Abstract pool test suite', () => {
     await pool.destroy()
   })
 
-  it('Verify that pool options are validated', async () => {
+  it('Verify that pool options are validated', () => {
     expect(
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             workerChoiceStrategy: 'invalidStrategy'
           }
@@ -299,7 +314,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             workerChoiceStrategyOptions: {
               retries: 'invalidChoiceRetries'
@@ -315,7 +330,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             workerChoiceStrategyOptions: {
               retries: -1
@@ -331,7 +346,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             workerChoiceStrategyOptions: { weights: {} }
           }
@@ -345,7 +360,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             workerChoiceStrategyOptions: { measurement: 'invalidMeasurement' }
           }
@@ -359,7 +374,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             enableTasksQueue: true,
             tasksQueueOptions: 'invalidTasksQueueOptions'
@@ -372,7 +387,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             enableTasksQueue: true,
             tasksQueueOptions: { concurrency: 0 }
@@ -387,7 +402,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             enableTasksQueue: true,
             tasksQueueOptions: { concurrency: -1 }
@@ -402,7 +417,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             enableTasksQueue: true,
             tasksQueueOptions: { concurrency: 0.2 }
@@ -415,7 +430,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             enableTasksQueue: true,
             tasksQueueOptions: { size: 0 }
@@ -430,7 +445,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             enableTasksQueue: true,
             tasksQueueOptions: { size: -1 }
@@ -445,7 +460,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             enableTasksQueue: true,
             tasksQueueOptions: { size: 0.2 }
@@ -459,7 +474,7 @@ describe('Abstract pool test suite', () => {
   it('Verify that pool worker choice strategy options can be set', async () => {
     const pool = new FixedThreadPool(
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy: WorkerChoiceStrategies.FAIR_SHARE }
     )
     expect(pool.opts.workerChoiceStrategyOptions).toStrictEqual({
@@ -633,7 +648,7 @@ describe('Abstract pool test suite', () => {
   it('Verify that pool tasks queue can be enabled/disabled', async () => {
     const pool = new FixedThreadPool(
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     expect(pool.opts.enableTasksQueue).toBe(false)
     expect(pool.opts.tasksQueueOptions).toBeUndefined()
@@ -678,7 +693,7 @@ describe('Abstract pool test suite', () => {
   it('Verify that pool tasks queue options can be set', async () => {
     const pool = new FixedThreadPool(
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { enableTasksQueue: true }
     )
     expect(pool.opts.tasksQueueOptions).toStrictEqual({
@@ -768,7 +783,7 @@ describe('Abstract pool test suite', () => {
   it('Verify that pool info is set', async () => {
     let pool = new FixedThreadPool(
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     expect(pool.info).toStrictEqual({
       version,
@@ -861,7 +876,7 @@ describe('Abstract pool test suite', () => {
     pool = new DynamicThreadPool(
       Math.floor(numberOfWorkers / 2),
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     for (const workerNode of pool.workerNodes) {
       expect(workerNode).toBeInstanceOf(WorkerNode)
@@ -890,7 +905,7 @@ describe('Abstract pool test suite', () => {
     pool = new DynamicThreadPool(
       Math.floor(numberOfWorkers / 2),
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     for (const workerNode of pool.workerNodes) {
       expect(workerNode).toBeInstanceOf(WorkerNode)
@@ -1021,7 +1036,7 @@ describe('Abstract pool test suite', () => {
     const pool = new DynamicThreadPool(
       Math.floor(numberOfWorkers / 2),
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     const promises = new Set()
     const maxMultiplier = 2
@@ -1135,7 +1150,7 @@ describe('Abstract pool test suite', () => {
   it("Verify that pool event emitter 'busy' event can register a callback", async () => {
     const pool = new FixedThreadPool(
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     expect(pool.emitter.eventNames()).toStrictEqual([])
     const promises = new Set()
@@ -1176,7 +1191,7 @@ describe('Abstract pool test suite', () => {
     const pool = new DynamicThreadPool(
       Math.floor(numberOfWorkers / 2),
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     expect(pool.emitter.eventNames()).toStrictEqual([])
     const promises = new Set()
@@ -1214,7 +1229,7 @@ describe('Abstract pool test suite', () => {
   it("Verify that pool event emitter 'backPressure' event can register a callback", async () => {
     const pool = new FixedThreadPool(
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       {
         enableTasksQueue: true
       }
@@ -1262,7 +1277,7 @@ describe('Abstract pool test suite', () => {
     const dynamicThreadPool = new DynamicThreadPool(
       Math.floor(numberOfWorkers / 2),
       numberOfWorkers,
-      './tests/worker-files/thread/testMultipleTaskFunctionsWorker.js'
+      './tests/worker-files/thread/testMultipleTaskFunctionsWorker.mjs'
     )
     await waitPoolEvents(dynamicThreadPool, PoolEvents.ready, 1)
     expect(dynamicThreadPool.hasTaskFunction(DEFAULT_TASK_NAME)).toBe(true)
@@ -1292,7 +1307,7 @@ describe('Abstract pool test suite', () => {
     const dynamicThreadPool = new DynamicThreadPool(
       Math.floor(numberOfWorkers / 2),
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     await waitPoolEvents(dynamicThreadPool, PoolEvents.ready, 1)
     await expect(
@@ -1363,7 +1378,7 @@ describe('Abstract pool test suite', () => {
     const dynamicThreadPool = new DynamicThreadPool(
       Math.floor(numberOfWorkers / 2),
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     await waitPoolEvents(dynamicThreadPool, PoolEvents.ready, 1)
     expect(dynamicThreadPool.listTaskFunctionNames()).toStrictEqual([
@@ -1404,7 +1419,7 @@ describe('Abstract pool test suite', () => {
     const dynamicThreadPool = new DynamicThreadPool(
       Math.floor(numberOfWorkers / 2),
       numberOfWorkers,
-      './tests/worker-files/thread/testMultipleTaskFunctionsWorker.js'
+      './tests/worker-files/thread/testMultipleTaskFunctionsWorker.mjs'
     )
     await waitPoolEvents(dynamicThreadPool, PoolEvents.ready, 1)
     expect(dynamicThreadPool.listTaskFunctionNames()).toStrictEqual([
@@ -1432,7 +1447,7 @@ describe('Abstract pool test suite', () => {
     const dynamicThreadPool = new DynamicThreadPool(
       Math.floor(numberOfWorkers / 2),
       numberOfWorkers,
-      './tests/worker-files/thread/testMultipleTaskFunctionsWorker.js'
+      './tests/worker-files/thread/testMultipleTaskFunctionsWorker.mjs'
     )
     await waitPoolEvents(dynamicThreadPool, PoolEvents.ready, 1)
     await expect(