1 import { randomInt } from 'node:crypto'
2 import { expect } from 'expect'
3 import { FixedThreadPool } from '../../../lib/index.cjs'
4 import { WeightedRoundRobinWorkerChoiceStrategy } from '../../../lib/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.cjs'
6 describe('Weighted round robin strategy worker choice strategy test suite', () => {
12 pool = new FixedThreadPool(
14 './tests/worker-files/thread/testWorker.mjs'
22 it('Verify that reset() resets internals', () => {
23 const strategy = new WeightedRoundRobinWorkerChoiceStrategy(pool)
24 strategy.nextWorkerNodeKey = randomInt(1, 281474976710655)
25 strategy.previousWorkerNodeKey = randomInt(1, 281474976710655)
26 strategy.workerNodeVirtualTaskRunTime = randomInt(1, 281474976710655)
27 expect(strategy.nextWorkerNodeKey).toBeGreaterThan(0)
28 expect(strategy.previousWorkerNodeKey).toBeGreaterThan(0)
29 expect(strategy.workerNodeVirtualTaskRunTime).toBeGreaterThan(0)
30 expect(strategy.reset()).toBe(true)
31 expect(strategy.nextWorkerNodeKey).toBe(0)
32 expect(strategy.previousWorkerNodeKey).toBe(0)
33 expect(strategy.workerNodeVirtualTaskRunTime).toBe(0)