Merge dependabot/npm_and_yarn/examples/typescript/websocket-server-pool/ws-hybrid...
[poolifier.git] / tests / utils.test.js
index b91929a6fb9414bbc778460825eecfb59302edbe..426985a299b366997189217802e4fab4283f7a7e 100644 (file)
@@ -1,6 +1,7 @@
 const { randomInt } = require('crypto')
 const { Worker } = require('worker_threads')
 const cluster = require('cluster')
+const os = require('os')
 const { expect } = require('expect')
 const {
   CircularArray,
@@ -19,7 +20,9 @@ const {
   isAsyncFunction,
   isKillBehavior,
   isPlainObject,
+  max,
   median,
+  min,
   round,
   secureRandom,
   sleep,
@@ -56,8 +59,14 @@ describe('Utils test suite', () => {
   it('Verify availableParallelism() behavior', () => {
     const parallelism = availableParallelism()
     expect(typeof parallelism === 'number').toBe(true)
-    expect(parallelism).toBeGreaterThan(0)
     expect(Number.isSafeInteger(parallelism)).toBe(true)
+    let expectedParallelism = 1
+    try {
+      expectedParallelism = os.availableParallelism()
+    } catch {
+      expectedParallelism = os.cpus().length
+    }
+    expect(parallelism).toBe(expectedParallelism)
   })
 
   it('Verify getWorkerType() behavior', () => {
@@ -304,4 +313,18 @@ describe('Utils test suite', () => {
     expect(randomNumber).toBeGreaterThanOrEqual(0)
     expect(randomNumber).toBeLessThan(1)
   })
+
+  it('Verify min() behavior', () => {
+    expect(min()).toBe(Infinity)
+    expect(min(1, 2)).toBe(1)
+    expect(min(2, 1)).toBe(1)
+    expect(min(1, 1)).toBe(1)
+  })
+
+  it('Verify max() behavior', () => {
+    expect(max()).toBe(-Infinity)
+    expect(max(1, 2)).toBe(2)
+    expect(max(2, 1)).toBe(2)
+    expect(max(1, 1)).toBe(1)
+  })
 })