X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Fpools%2Fselection-strategies%2Fweighted-round-robin-worker-choice-strategy.test.mjs;h=5beffafac1b2d1ba5bdc9bcc845475abd4754698;hb=6df7fd58278efabaca36bc515ba038ebcae807ec;hp=a8c4bdd5eaabf9f0845e82d00d9a1bd9c2c2caa1;hpb=229e9e73566ed1960ba5be0534fb3aa2eeb115eb;p=poolifier.git diff --git a/tests/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.test.mjs b/tests/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.test.mjs index a8c4bdd5..5beffafa 100644 --- a/tests/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.test.mjs +++ b/tests/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.test.mjs @@ -1,8 +1,8 @@ +import { randomInt } from 'node:crypto' import { expect } from 'expect' -import { restore } from 'sinon' -import { FixedThreadPool } from '../../../lib/index.js' -import { WeightedRoundRobinWorkerChoiceStrategy } from '../../../lib/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.js' -import { generateRandomInteger } from '../../test-utils.js' +import { FixedThreadPool } from '../../../lib/index.cjs' +import { InterleavedWeightedRoundRobinWorkerChoiceStrategy } from '../../../lib/pools/selection-strategies/interleaved-weighted-round-robin-worker-choice-strategy.cjs' +import { WeightedRoundRobinWorkerChoiceStrategy } from '../../../lib/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.cjs' describe('Weighted round robin strategy worker choice strategy test suite', () => { // const min = 1 @@ -16,24 +16,41 @@ describe('Weighted round robin strategy worker choice strategy test suite', () = ) }) - afterEach(() => { - restore() - }) - after(async () => { await pool.destroy() }) - it('Verify that reset() resets internals', () => { + it('Verify that WRR reset() resets internals', () => { const strategy = new WeightedRoundRobinWorkerChoiceStrategy(pool) - strategy.currentWorkerId = generateRandomInteger(Number.MAX_SAFE_INTEGER, 1) - strategy.workerVirtualTaskRunTime = generateRandomInteger( - Number.MAX_SAFE_INTEGER, - 1 - ) + strategy.nextWorkerNodeKey = randomInt(1, 281474976710656) + strategy.previousWorkerNodeKey = randomInt(1, 281474976710656) + strategy.workerNodeVirtualTaskRunTime = randomInt(1, 281474976710656) + expect(strategy.nextWorkerNodeKey).toBeGreaterThan(0) + expect(strategy.previousWorkerNodeKey).toBeGreaterThan(0) + expect(strategy.workerNodeVirtualTaskRunTime).toBeGreaterThan(0) + expect(strategy.reset()).toBe(true) + expect(strategy.nextWorkerNodeKey).toBe(0) + expect(strategy.previousWorkerNodeKey).toBe(0) + expect(strategy.workerNodeVirtualTaskRunTime).toBe(0) + }) + + it('Verify that IWRR reset() resets internals', () => { + const strategy = new InterleavedWeightedRoundRobinWorkerChoiceStrategy(pool) + strategy.nextWorkerNodeKey = randomInt(1, 281474976710656) + strategy.previousWorkerNodeKey = randomInt(1, 281474976710656) + strategy.roundId = randomInt(1, 281474976710656) + strategy.workerNodeId = randomInt(1, 281474976710656) + strategy.workerNodeVirtualTaskRunTime = randomInt(1, 281474976710656) + expect(strategy.nextWorkerNodeKey).toBeGreaterThan(0) + expect(strategy.previousWorkerNodeKey).toBeGreaterThan(0) + expect(strategy.roundId).toBeGreaterThan(0) + expect(strategy.workerNodeId).toBeGreaterThan(0) + expect(strategy.workerNodeVirtualTaskRunTime).toBeGreaterThan(0) expect(strategy.reset()).toBe(true) expect(strategy.nextWorkerNodeKey).toBe(0) expect(strategy.previousWorkerNodeKey).toBe(0) + expect(strategy.roundId).toBe(0) + expect(strategy.workerNodeId).toBe(0) expect(strategy.workerNodeVirtualTaskRunTime).toBe(0) }) })