X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Futils.test.mjs;h=fd4f776bf2409c8a725e8d3631be9e8981e545c4;hb=028ea3ce0e01b9b252c88684998b0bc1f06f1bed;hp=c048141bf2ffcd7aab57de5d9b7aaa178d630137;hpb=b2fd3f4a217ac09110da00b3b65dcdd36de4bf74;p=poolifier.git diff --git a/tests/utils.test.mjs b/tests/utils.test.mjs index c048141b..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, @@ -19,6 +19,7 @@ import { max, median, min, + // once, round, secureRandom, sleep @@ -34,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, @@ -82,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(999) + expect(elapsed).toBeGreaterThanOrEqual(sleepMs - 1) }) it('Verify exponentialDelay() behavior', () => { @@ -237,4 +230,37 @@ describe('Utils test suite', () => { expect(max(2, 1)).toBe(2) 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 + // const onceFn = once(fn, this) + // const result1 = onceFn() + // expect(called).toBe(1) + // expect(result1).toBe(1) + // const result2 = onceFn() + // expect(called).toBe(1) + // expect(result2).toBe(1) + // const result3 = onceFn() + // expect(called).toBe(1) + // expect(result3).toBe(1) + // }) })