X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Fpools%2Fselection-strategies%2Fworker-choice-strategy-context.test.mjs;h=f076f4ddda866dc79735530a8ec4003202dee772;hb=af7f2788b6fcc39343d544551cf17c8f0dc5b757;hp=a5447b73f7fdaa7b3f5fa6a6905484b1d34f2b2b;hpb=fb5a7307dfe8e86d539482dd807d821bf3c2fbc1;p=poolifier.git diff --git a/tests/pools/selection-strategies/worker-choice-strategy-context.test.mjs b/tests/pools/selection-strategies/worker-choice-strategy-context.test.mjs index a5447b73..f076f4dd 100644 --- a/tests/pools/selection-strategies/worker-choice-strategy-context.test.mjs +++ b/tests/pools/selection-strategies/worker-choice-strategy-context.test.mjs @@ -80,6 +80,9 @@ describe('Worker choice strategy context test suite', () => { const workerChoiceStrategyContext = new WorkerChoiceStrategyContext( fixedPool ) + expect(workerChoiceStrategyContext.workerChoiceStrategy).toBe( + WorkerChoiceStrategies.ROUND_ROBIN + ) const workerChoiceStrategyUndefinedStub = createStubInstance( RoundRobinWorkerChoiceStrategy, { @@ -87,6 +90,15 @@ describe('Worker choice strategy context test suite', () => { choose: stub().returns(undefined) } ) + workerChoiceStrategyContext.workerChoiceStrategies.set( + workerChoiceStrategyContext.workerChoiceStrategy, + workerChoiceStrategyUndefinedStub + ) + expect(() => workerChoiceStrategyContext.execute()).toThrow( + new Error( + `Worker node key chosen is null or undefined after ${fixedPool.info.maxSize} retries` + ) + ) const workerChoiceStrategyNullStub = createStubInstance( RoundRobinWorkerChoiceStrategy, { @@ -94,22 +106,14 @@ describe('Worker choice strategy context test suite', () => { choose: stub().returns(null) } ) - expect(workerChoiceStrategyContext.workerChoiceStrategy).toBe( - WorkerChoiceStrategies.ROUND_ROBIN - ) - workerChoiceStrategyContext.workerChoiceStrategies.set( - workerChoiceStrategyContext.workerChoiceStrategy, - workerChoiceStrategyUndefinedStub - ) - expect(() => workerChoiceStrategyContext.execute()).toThrow( - new Error('Worker node key chosen is null or undefined after 6 retries') - ) workerChoiceStrategyContext.workerChoiceStrategies.set( workerChoiceStrategyContext.workerChoiceStrategy, workerChoiceStrategyNullStub ) expect(() => workerChoiceStrategyContext.execute()).toThrow( - new Error('Worker node key chosen is null or undefined after 6 retries') + new Error( + `Worker node key chosen is null or undefined after ${fixedPool.info.maxSize} retries` + ) ) }) @@ -131,12 +135,6 @@ describe('Worker choice strategy context test suite', () => { .returns(false) .onCall(4) .returns(false) - .onCall(6) - .returns(false) - .onCall(7) - .returns(false) - .onCall(8) - .returns(false) .returns(true), choose: stub().returns(1) } @@ -153,7 +151,7 @@ describe('Worker choice strategy context test suite', () => { workerChoiceStrategyContext.workerChoiceStrategies.get( workerChoiceStrategyContext.workerChoiceStrategy ).hasPoolWorkerNodesReady.callCount - ).toBe(12) + ).toBe(6) expect( workerChoiceStrategyContext.workerChoiceStrategies.get( workerChoiceStrategyContext.workerChoiceStrategy @@ -162,7 +160,7 @@ describe('Worker choice strategy context test suite', () => { expect(chosenWorkerKey).toBe(1) }) - it('Verify that execute() throws error if worker choice strategy consecutive executions has been reached', () => { + it('Verify that execute() throws error if worker choice strategy recursion reach the maximum depth', () => { const workerChoiceStrategyContext = new WorkerChoiceStrategyContext( fixedPool ) @@ -181,9 +179,7 @@ describe('Worker choice strategy context test suite', () => { workerChoiceStrategyStub ) expect(() => workerChoiceStrategyContext.execute()).toThrow( - new RangeError( - 'Worker choice strategy consecutive executions has exceeded the maximum of 10000' - ) + new RangeError('Maximum call stack size exceeded') ) })