X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Futils.test.mjs;h=fd4f776bf2409c8a725e8d3631be9e8981e545c4;hb=ecab2e2a359a3af2afcca8424d704c920fe1fddf;hp=0ae80de24bfa9c2badff5f5127a8e3137c50e6a9;hpb=9974369e3530cf80c21794b59bcbbc4c72e505eb;p=poolifier.git diff --git a/tests/utils.test.mjs b/tests/utils.test.mjs index 0ae80de2..fd4f776b 100644 --- a/tests/utils.test.mjs +++ b/tests/utils.test.mjs @@ -6,10 +6,10 @@ import { expect } from 'expect' import { DEFAULT_MEASUREMENT_STATISTICS_REQUIREMENTS, DEFAULT_TASK_NAME, - DEFAULT_WORKER_CHOICE_STRATEGY_OPTIONS, EMPTY_FUNCTION, availableParallelism, average, + buildInternalWorkerChoiceStrategyOptions, exponentialDelay, getWorkerId, getWorkerType, @@ -35,15 +35,6 @@ describe('Utils test suite', () => { expect(EMPTY_FUNCTION).toStrictEqual(expect.any(Function)) }) - it('Verify DEFAULT_WORKER_CHOICE_STRATEGY_OPTIONS values', () => { - expect(DEFAULT_WORKER_CHOICE_STRATEGY_OPTIONS).toStrictEqual({ - retries: 6, - runTime: { median: false }, - waitTime: { median: false }, - elu: { median: false } - }) - }) - it('Verify DEFAULT_MEASUREMENT_STATISTICS_REQUIREMENTS values', () => { expect(DEFAULT_MEASUREMENT_STATISTICS_REQUIREMENTS).toStrictEqual({ aggregate: false, @@ -83,9 +74,10 @@ describe('Utils test suite', () => { it('Verify sleep() behavior', async () => { const start = performance.now() - await sleep(1000) + const sleepMs = 1000 + await sleep(sleepMs) const elapsed = performance.now() - start - expect(elapsed).toBeGreaterThanOrEqual(1000) + expect(elapsed).toBeGreaterThanOrEqual(sleepMs - 1) }) it('Verify exponentialDelay() behavior', () => { @@ -239,6 +231,24 @@ describe('Utils test suite', () => { expect(max(1, 1)).toBe(1) }) + it('Verify buildInternalWorkerChoiceStrategyOptions() behavior', () => { + const poolMaxSize = 10 + const internalWorkerChoiceStrategyOptions = + buildInternalWorkerChoiceStrategyOptions(poolMaxSize) + expect(internalWorkerChoiceStrategyOptions).toStrictEqual({ + retries: + poolMaxSize + + Object.keys(internalWorkerChoiceStrategyOptions.weights).length, + runTime: { median: false }, + waitTime: { median: false }, + elu: { median: false }, + weights: expect.objectContaining({ + 0: expect.any(Number), + [poolMaxSize - 1]: expect.any(Number) + }) + }) + }) + // it('Verify once()', () => { // let called = 0 // const fn = () => ++called