- expect(() => workerChoiceStrategyContext.execute()).toThrowError(
- new Error('Worker node key chosen is null or undefined after 6 retries')
+ const chosenWorkerKey = workerChoiceStrategyContext.execute()
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ workerChoiceStrategyContext.workerChoiceStrategy
+ ).hasPoolWorkerNodesReady.callCount
+ ).toBe(12)
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ workerChoiceStrategyContext.workerChoiceStrategy
+ ).choose.callCount
+ ).toBe(1)
+ expect(chosenWorkerKey).toBe(1)
+ })
+
+ it('Verify that execute() throws error if worker choice strategy consecutive executions has been reached', () => {
+ const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
+ fixedPool
+ )
+ const workerChoiceStrategyStub = createStubInstance(
+ RoundRobinWorkerChoiceStrategy,
+ {
+ hasPoolWorkerNodesReady: stub().returns(false),
+ choose: stub().returns(0)
+ }
+ )
+ expect(workerChoiceStrategyContext.workerChoiceStrategy).toBe(
+ WorkerChoiceStrategies.ROUND_ROBIN