DynamicThreadPool,
FixedClusterPool,
FixedThreadPool,
+ PoolEvents,
WorkerChoiceStrategies
} = require('../../../lib')
const { CircularArray } = require('../../../lib/circular-array')
+const { waitPoolEvents } = require('../../test-utils')
describe('Selection strategies test suite', () => {
const min = 0
WorkerChoiceStrategies.INTERLEAVED_WEIGHTED_ROUND_ROBIN
}
)
+ if (!pool.info.ready) {
+ await waitPoolEvents(pool, PoolEvents.ready, 1)
+ }
// TODO: Create a better test to cover `InterleavedWeightedRoundRobinWorkerChoiceStrategy#choose`
const promises = new Set()
const maxMultiplier = 2
WorkerChoiceStrategies.INTERLEAVED_WEIGHTED_ROUND_ROBIN
}
)
+ if (!pool.info.ready) {
+ await waitPoolEvents(pool, PoolEvents.ready, 1)
+ }
// TODO: Create a better test to cover `InterleavedWeightedRoundRobinWorkerChoiceStrategy#choose`
const promises = new Set()
const maxMultiplier = 2
for (const workerNode of pool.workerNodes) {
expect(workerNode.usage).toStrictEqual({
tasks: {
- executed: maxMultiplier,
+ executed: expect.any(Number),
executing: 0,
queued: 0,
maxQueued: 0,
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
pool.workerChoiceStrategyContext.workerChoiceStrategy
).nextWorkerNodeKey
- ).toBe(0)
+ ).toBe(1)
expect(
pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
pool.workerChoiceStrategyContext.workerChoiceStrategy