test: add UTs
[poolifier.git] / tests / utils.test.js
index 76abf04645ef4fa6e70b7e88e97ea25a611dde89..c00f0307d45b257da730c3cb55f72ba96f15789c 100644 (file)
@@ -1,3 +1,4 @@
+const { randomInt } = require('crypto')
 const { expect } = require('expect')
 const {
   CircularArray,
@@ -6,12 +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')
@@ -23,6 +26,23 @@ describe('Utils test suite', () => {
     expect(Number.isSafeInteger(availableParallelism())).toBe(true)
   })
 
+  it('Verify sleep() behavior', async () => {
+    const now = performance.now()
+    await sleep(1000)
+    const elapsed = performance.now() - now
+    expect(elapsed).toBeGreaterThanOrEqual(1000)
+  })
+
+  it('Verify exponentialDelay() behavior', () => {
+    expect(typeof exponentialDelay(randomInt(1000)) === 'number').toBe(true)
+    expect(exponentialDelay(randomInt(1000))).toBeGreaterThanOrEqual(
+      Number.MIN_VALUE
+    )
+    expect(exponentialDelay(randomInt(1000))).toBeLessThanOrEqual(
+      Number.MAX_VALUE
+    )
+  })
+
   it('Verify average() computation', () => {
     expect(average([])).toBe(0)
     expect(average([0.08])).toBe(0.08)