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 FairShareWorkerChoiceStrategy
18 } = require('../../../lib/pools/selection-strategies/fair-share-worker-choice-strategy')
20 // WeightedRoundRobinWorkerChoiceStrategy
21 // } = require('../../../lib/pools/selection-strategies/weighted-round-robin-choice-strategy')
23 describe('Selection strategies utils test suite', () => {
26 pool
= sinon
.createStubInstance(FixedThreadPool
)
33 it('Verify that getWorkerChoiceStrategy() default return ROUND_ROBIN strategy', () => {
34 const strategy
= SelectionStrategiesUtils
.getWorkerChoiceStrategy(pool
)
35 expect(strategy
).toBeInstanceOf(RoundRobinWorkerChoiceStrategy
)
38 it('Verify that getWorkerChoiceStrategy() can return ROUND_ROBIN strategy', () => {
39 const strategy
= SelectionStrategiesUtils
.getWorkerChoiceStrategy(
41 WorkerChoiceStrategies
.ROUND_ROBIN
43 expect(strategy
).toBeInstanceOf(RoundRobinWorkerChoiceStrategy
)
46 it('Verify that getWorkerChoiceStrategy() can return LESS_RECENTLY_USED strategy', () => {
47 const strategy
= SelectionStrategiesUtils
.getWorkerChoiceStrategy(
49 WorkerChoiceStrategies
.LESS_RECENTLY_USED
51 expect(strategy
).toBeInstanceOf(LessRecentlyUsedWorkerChoiceStrategy
)
54 it('Verify that getWorkerChoiceStrategy() can return FAIR_SHARE strategy', () => {
55 const strategy
= SelectionStrategiesUtils
.getWorkerChoiceStrategy(
57 WorkerChoiceStrategies
.FAIR_SHARE
59 expect(strategy
).toBeInstanceOf(FairShareWorkerChoiceStrategy
)
62 // it('Verify that getWorkerChoiceStrategy() can return WEIGHTED_ROUND_ROBIN strategy', () => {
63 // const strategy = SelectionStrategiesUtils.getWorkerChoiceStrategy(
65 // WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
67 // expect(strategy).toBeInstanceOf(WeightedRoundRobinWorkerChoiceStrategy)
70 it('Verify that getWorkerChoiceStrategy() throw error on unknown strategy', () => {
72 SelectionStrategiesUtils
.getWorkerChoiceStrategy(pool
, 'UNKNOWN_STRATEGY')
74 new Error("Worker choice strategy 'UNKNOWN_STRATEGY' not found")