X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Fpools%2Fselection-strategies%2Fworker-choice-strategy-context.test.mjs;h=eb854b58badd66a4a16b1fcd9c49b445d06f8c93;hb=c1d4808dda55cd9ca2c7fdd5ccc330c3a7642a35;hp=77f1d4a1cfa6e63ae382df30d506e17701266576;hpb=e44639e9af74427b71f1556ff7ec9f7606373e0d;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 77f1d4a1..eb854b58 100644 --- a/tests/pools/selection-strategies/worker-choice-strategy-context.test.mjs +++ b/tests/pools/selection-strategies/worker-choice-strategy-context.test.mjs @@ -60,33 +60,6 @@ describe('Worker choice strategy context test suite', () => { ) }) - it('Verify that execute() return the worker node key chosen by the strategy with fixed pool', () => { - const workerChoiceStrategyContext = new WorkerChoiceStrategyContext( - fixedPool - ) - const workerChoiceStrategyStub = createStubInstance( - RoundRobinWorkerChoiceStrategy, - { - hasPoolWorkerNodesReady: stub().returns(true), - choose: stub().returns(0) - } - ) - expect(workerChoiceStrategyContext.workerChoiceStrategy).toBe( - WorkerChoiceStrategies.ROUND_ROBIN - ) - workerChoiceStrategyContext.workerChoiceStrategies.set( - workerChoiceStrategyContext.workerChoiceStrategy, - workerChoiceStrategyStub - ) - const chosenWorkerKey = workerChoiceStrategyContext.execute() - expect( - workerChoiceStrategyContext.workerChoiceStrategies.get( - workerChoiceStrategyContext.workerChoiceStrategy - ).choose.calledOnce - ).toBe(true) - expect(chosenWorkerKey).toBe(0) - }) - it('Verify that execute() throws error if null or undefined is returned after retries', () => { const workerChoiceStrategyContext = new WorkerChoiceStrategyContext( fixedPool @@ -97,7 +70,6 @@ describe('Worker choice strategy context test suite', () => { const workerChoiceStrategyUndefinedStub = createStubInstance( RoundRobinWorkerChoiceStrategy, { - hasPoolWorkerNodesReady: stub().returns(true), choose: stub().returns(undefined) } ) @@ -113,7 +85,6 @@ describe('Worker choice strategy context test suite', () => { const workerChoiceStrategyNullStub = createStubInstance( RoundRobinWorkerChoiceStrategy, { - hasPoolWorkerNodesReady: stub().returns(true), choose: stub().returns(null) } ) @@ -128,26 +99,25 @@ describe('Worker choice strategy context test suite', () => { ) }) - it('Verify that execute() retry until a worker node is ready and chosen', () => { + it('Verify that execute() retry until a worker node is chosen', () => { const workerChoiceStrategyContext = new WorkerChoiceStrategyContext( fixedPool ) const workerChoiceStrategyStub = createStubInstance( RoundRobinWorkerChoiceStrategy, { - hasPoolWorkerNodesReady: stub() + choose: stub() .onCall(0) - .returns(false) + .returns(undefined) .onCall(1) - .returns(false) + .returns(undefined) .onCall(2) - .returns(false) + .returns(undefined) .onCall(3) - .returns(false) + .returns(undefined) .onCall(4) - .returns(false) - .returns(true), - choose: stub().returns(1) + .returns(undefined) + .returns(1) } ) expect(workerChoiceStrategyContext.workerChoiceStrategy).toBe( @@ -162,10 +132,36 @@ describe('Worker choice strategy context test suite', () => { workerChoiceStrategyContext.workerChoiceStrategies.get( workerChoiceStrategyContext.workerChoiceStrategy ).choose.callCount - ).toBe(1) + ).toBe(6) expect(chosenWorkerKey).toBe(1) }) + it('Verify that execute() return the worker node key chosen by the strategy with fixed pool', () => { + const workerChoiceStrategyContext = new WorkerChoiceStrategyContext( + fixedPool + ) + const workerChoiceStrategyStub = createStubInstance( + RoundRobinWorkerChoiceStrategy, + { + choose: stub().returns(0) + } + ) + expect(workerChoiceStrategyContext.workerChoiceStrategy).toBe( + WorkerChoiceStrategies.ROUND_ROBIN + ) + workerChoiceStrategyContext.workerChoiceStrategies.set( + workerChoiceStrategyContext.workerChoiceStrategy, + workerChoiceStrategyStub + ) + const chosenWorkerKey = workerChoiceStrategyContext.execute() + expect( + workerChoiceStrategyContext.workerChoiceStrategies.get( + workerChoiceStrategyContext.workerChoiceStrategy + ).choose.calledOnce + ).toBe(true) + expect(chosenWorkerKey).toBe(0) + }) + it('Verify that execute() return the worker node key chosen by the strategy with dynamic pool', () => { const workerChoiceStrategyContext = new WorkerChoiceStrategyContext( dynamicPool @@ -173,7 +169,6 @@ describe('Worker choice strategy context test suite', () => { const workerChoiceStrategyStub = createStubInstance( RoundRobinWorkerChoiceStrategy, { - hasPoolWorkerNodesReady: stub().returns(true), choose: stub().returns(0) } )