X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Futils.test.js;h=c00f0307d45b257da730c3cb55f72ba96f15789c;hb=817dcda1d42ecdaf8894bea4737aa8d98eb418dc;hp=97b5e8a985bd9569efe405c813740b4551c4c607;hpb=ddc35f92c712f38d9cfd79fd558cf80c0e031219;p=poolifier.git diff --git a/tests/utils.test.js b/tests/utils.test.js index 97b5e8a9..c00f0307 100644 --- a/tests/utils.test.js +++ b/tests/utils.test.js @@ -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,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) @@ -196,4 +217,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) + }) })