1 const { expect
} = require('expect')
2 const sinon
= require('sinon')
3 const { FixedThreadPool
} = require('../../../lib/index')
5 WeightedRoundRobinWorkerChoiceStrategy
6 } = require('../../../lib/pools/selection-strategies/weighted-round-robin-worker-choice-strategy')
8 describe('Weighted round robin strategy worker choice strategy test suite', () => {
14 pool
= new FixedThreadPool(max
, './tests/worker-files/thread/testWorker.js')
25 it('Verify that reset() resets internals', () => {
26 const strategy
= new WeightedRoundRobinWorkerChoiceStrategy(pool
)
27 const workersTaskRunTimeClearStub
= sinon
28 .stub(strategy
.workersTaskRunTime
, 'clear')
30 const initWorkersTaskRunTimeStub
= sinon
31 .stub(strategy
, 'initWorkersTaskRunTime')
33 const resetResult
= strategy
.reset()
34 expect(resetResult
).toBe(true)
35 expect(strategy
.previousWorkerIndex
).toBe(0)
36 expect(strategy
.currentWorkerIndex
).toBe(0)
37 expect(strategy
.defaultWorkerWeight
).toBeGreaterThan(0)
38 expect(workersTaskRunTimeClearStub
.calledOnce
).toBe(true)
39 expect(initWorkersTaskRunTimeStub
.calledOnce
).toBe(true)