docs: refine changelog entries
[poolifier.git] / tests / pools / utils.test.mjs
index bf0c72afadadc78819bd5d938a30f962496f1fee..bc0c7126ddaa225c92e5e8c2f13174e2e2eaa760 100644 (file)
@@ -1,11 +1,29 @@
+import { Worker as ThreadWorker } from 'node:worker_threads'
+import { Worker as ClusterWorker } from 'node:cluster'
 import { expect } from 'expect'
 import {
   CircularArray,
   DEFAULT_CIRCULAR_ARRAY_SIZE
-} from '../../lib/circular-array.js'
-import { updateMeasurementStatistics } from '../../lib/pools/utils.js'
+} from '../../lib/circular-array.cjs'
+import {
+  createWorker,
+  getDefaultTasksQueueOptions,
+  updateMeasurementStatistics
+} from '../../lib/pools/utils.cjs'
+import { WorkerTypes } from '../../lib/index.cjs'
 
 describe('Pool utils test suite', () => {
+  it('Verify getDefaultTasksQueueOptions() behavior', () => {
+    const poolMaxSize = 4
+    expect(getDefaultTasksQueueOptions(poolMaxSize)).toStrictEqual({
+      concurrency: 1,
+      size: Math.pow(poolMaxSize, 2),
+      taskStealing: true,
+      tasksStealingOnBackPressure: true,
+      tasksFinishedTimeout: 2000
+    })
+  })
+
   it('Verify updateMeasurementStatistics() behavior', () => {
     const measurementStatistics = {
       history: new CircularArray()
@@ -92,4 +110,19 @@ describe('Pool utils test suite', () => {
       )
     })
   })
+
+  it('Verify createWorker() behavior', () => {
+    expect(
+      createWorker(
+        WorkerTypes.thread,
+        './tests/worker-files/thread/testWorker.mjs'
+      )
+    ).toBeInstanceOf(ThreadWorker)
+    expect(
+      createWorker(
+        WorkerTypes.cluster,
+        './tests/worker-files/cluster/testWorker.mjs'
+      )
+    ).toBeInstanceOf(ClusterWorker)
+  })
 })