docs: update benchmarks vs. external pools
[poolifier.git] / tests / utils.test.js
index 97b5e8a985bd9569efe405c813740b4551c4c607..6cfe99ae2f1198592d940bd0b1414d4fa038bb36 100644 (file)
@@ -1,3 +1,4 @@
+const { randomInt } = require('crypto')
 const { expect } = require('expect')
 const {
   CircularArray,
@@ -6,11 +7,14 @@ const {
 const {
   availableParallelism,
   average,
+  exponentialDelay,
   isAsyncFunction,
   isKillBehavior,
   isPlainObject,
   median,
   round,
+  secureRandom,
+  sleep,
   updateMeasurementStatistics
 } = require('../lib/utils')
 const { KillBehaviors } = require('../lib/worker/worker-options')
@@ -22,6 +26,20 @@ describe('Utils test suite', () => {
     expect(Number.isSafeInteger(availableParallelism())).toBe(true)
   })
 
+  it.skip('Verify sleep() behavior', async () => {
+    const start = performance.now()
+    await sleep(1000)
+    const elapsed = performance.now() - start
+    expect(elapsed).toBeGreaterThanOrEqual(1000)
+  })
+
+  it('Verify exponentialDelay() behavior', () => {
+    const delay = exponentialDelay(randomInt(1000))
+    expect(typeof delay === 'number').toBe(true)
+    expect(delay).toBeGreaterThanOrEqual(Number.MIN_VALUE)
+    expect(delay).toBeLessThanOrEqual(Number.MAX_VALUE)
+  })
+
   it('Verify average() computation', () => {
     expect(average([])).toBe(0)
     expect(average([0.08])).toBe(0.08)
@@ -196,4 +214,11 @@ describe('Utils test suite', () => {
       history: new CircularArray(DEFAULT_CIRCULAR_ARRAY_SIZE, 0.001, 0.003)
     })
   })
+
+  it('Verify secureRandom() behavior', () => {
+    const randomNumber = secureRandom()
+    expect(typeof randomNumber === 'number').toBe(true)
+    expect(randomNumber).toBeGreaterThanOrEqual(0)
+    expect(randomNumber).toBeLessThan(1)
+  })
 })