1 const { expect
} = require('expect')
2 const sinon
= require('sinon')
4 SelectionStrategiesUtils
5 } = require('../../../lib/pools/selection-strategies/selection-strategies-utils')
9 } = require('../../../lib/index')
11 RoundRobinWorkerChoiceStrategy
12 } = require('../../../lib/pools/selection-strategies/round-robin-worker-choice-strategy')
14 LessRecentlyUsedWorkerChoiceStrategy
15 } = require('../../../lib/pools/selection-strategies/less-recently-used-worker-choice-strategy')
17 describe('Selection strategies utils test suite', () => {
20 pool
= sinon
.createStubInstance(FixedThreadPool
)
27 it('Verify that getWorkerChoiceStrategy() default return ROUND_ROBIN strategy', () => {
28 const strategy
= SelectionStrategiesUtils
.getWorkerChoiceStrategy(pool
)
29 expect(strategy
).toBeInstanceOf(RoundRobinWorkerChoiceStrategy
)
32 it('Verify that getWorkerChoiceStrategy() can return ROUND_ROBIN strategy', () => {
33 const strategy
= SelectionStrategiesUtils
.getWorkerChoiceStrategy(
35 WorkerChoiceStrategies
.ROUND_ROBIN
37 expect(strategy
).toBeInstanceOf(RoundRobinWorkerChoiceStrategy
)
40 it('Verify that getWorkerChoiceStrategy() can return LESS_RECENTLY_USED strategy', () => {
41 const strategy
= SelectionStrategiesUtils
.getWorkerChoiceStrategy(
43 WorkerChoiceStrategies
.LESS_RECENTLY_USED
45 expect(strategy
).toBeInstanceOf(LessRecentlyUsedWorkerChoiceStrategy
)
48 it('Verify that getWorkerChoiceStrategy() throw error on unknown strategy', () => {
50 SelectionStrategiesUtils
.getWorkerChoiceStrategy(pool
, 'UNKNOWN_STRATEGY')
52 new Error("Worker choice strategy 'UNKNOWN_STRATEGY' not found")