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')
7 const TestUtils
= require('../../test-utils')
9 describe('Weighted round robin strategy worker choice strategy test suite', () => {
15 pool
= new FixedThreadPool(max
, './tests/worker-files/thread/testWorker.js')
26 it('Verify that reset() resets internals', () => {
27 const strategy
= new WeightedRoundRobinWorkerChoiceStrategy(pool
)
28 strategy
.currentWorkerId
= TestUtils
.generateRandomInteger()
29 const workersTaskRunTimeClearStub
= sinon
30 .stub(strategy
.workersTaskRunTime
, 'clear')
32 const initWorkersTaskRunTimeStub
= sinon
33 .stub(strategy
, 'initWorkersTaskRunTime')
35 const resetResult
= strategy
.reset()
36 expect(resetResult
).toBe(true)
37 expect(strategy
.currentWorkerId
).toBe(0)
38 expect(workersTaskRunTimeClearStub
.calledOnce
).toBe(true)
39 expect(initWorkersTaskRunTimeStub
.calledOnce
).toBe(true)