diff --git a/test/test.ts b/test/test.ts index 7855ecf..0fb73d3 100644 --- a/test/test.ts +++ b/test/test.ts @@ -40,6 +40,12 @@ tap.test('.deploy() should deploy a config from an instance', async () => { await testSmartNginx.deploy(); }); +tap.test('should not redeploy', async () => { + testSmartNginx.addHostCandidate(testNginxZone01); + testSmartNginx.addHostCandidate(testNginxZone02); + await testSmartNginx.deploy(); +}); + tap.test('.stop() should end the process', async () => { testSmartNginx.nginxProcess.stop(); }); diff --git a/ts/smartnginx.classes.smartnginx.ts b/ts/smartnginx.classes.smartnginx.ts index 04aa05b..5fddcd1 100644 --- a/ts/smartnginx.classes.smartnginx.ts +++ b/ts/smartnginx.classes.smartnginx.ts @@ -70,12 +70,12 @@ export class SmartNginx { * check wether there has been a diverging host configuration * this function will only redeploy the nginx configuration in case there has been a change */ - private areHostsDiverged(): boolean { + private async areHostsDiverged(): Promise { let hostCounter = 0; let unfoundHosts = 0; - this.hostCandidates.forEach(hostCandidateArg => { + await this.hostCandidates.forEach(async hostCandidateArg => { let foundHost = false; - this.deployedHosts.forEach(deployedHostArg => { + await this.deployedHosts.forEach(async deployedHostArg => { if ( hostCandidateArg.hostName === deployedHostArg.hostName && hostCandidateArg.destination === deployedHostArg.destination @@ -89,7 +89,7 @@ export class SmartNginx { } }); return ( - this.deployedHosts.getArray.length !== this.hostCandidates.getArray().length || + this.deployedHosts.getArray().length !== this.hostCandidates.getArray().length || hostCounter !== this.deployedHosts.getArray().length || unfoundHosts !== 0 ); @@ -99,7 +99,7 @@ export class SmartNginx { * deploy the current stack and restart nginx */ public async deploy() { - if (this.areHostsDiverged()) { + if (await this.areHostsDiverged()) { this.logger.log('ok', `hosts have diverged, trigger config deployment and nginx reload!`); this.deployedHosts.wipe(); this.deployedHosts.addArray(this.hostCandidates.getArray());