diff --git a/src/ClusterFailoverService.ts b/src/ClusterFailoverService.ts index 2dee9f244..332704bfd 100644 --- a/src/ClusterFailoverService.ts +++ b/src/ClusterFailoverService.ts @@ -50,7 +50,7 @@ export class ClusterFailoverService { } private doTryNextCluster(tryCount: number, fn: TryNextFn): Promise { - if (!this.lifecycleService.isRunning() || tryCount >= this.maxTryCount) { + if (!this.lifecycleService.isRunning() || tryCount >= (this.maxTryCount * this.candidateClusters.length)) { return Promise.resolve(false); } diff --git a/test/unit/ClusterFailoverServiceTest.js b/test/unit/ClusterFailoverServiceTest.js index b8c9fde1c..ee2c3fcb4 100644 --- a/test/unit/ClusterFailoverServiceTest.js +++ b/test/unit/ClusterFailoverServiceTest.js @@ -111,8 +111,8 @@ describe('ClusterFailoverServiceTest', function () { const result = await service.tryNextCluster(fn); expect(result).to.be.false; - expect(cnt).to.be.equal(maxTryCount); - expect(fn.callCount).to.be.equal(maxTryCount); - expect(service.current()).to.be.equal(contexts[maxTryCount % contexts.length]); + expect(cnt).to.be.equal(maxTryCount * contexts.length); + expect(fn.callCount).to.be.equal(maxTryCount * contexts.length); + expect(service.current()).to.be.equal(contexts[(maxTryCount * contexts.length) % contexts.length]); }); });