fix: ensure internal counters are zeroed at simulator stop
authorJérôme Benoit <jerome.benoit@sap.com>
Mon, 29 May 2023 10:58:57 +0000 (12:58 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Mon, 29 May 2023 10:58:57 +0000 (12:58 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
src/charging-station/Bootstrap.ts

index 35f67a9504a7cb43089efcd651ee22e36c87c785..cebd8c8fcf2913e87fbcdf2b63d885d233bcbbee 100644 (file)
@@ -60,8 +60,8 @@ export class Bootstrap extends EventEmitter {
     // Enable unconditionally for now
     handleUnhandledRejection();
     handleUncaughtException();
-    this.initializedCounters = false;
     this.started = false;
+    this.initializedCounters = false;
     this.initializeCounters();
     this.workerImplementation = null;
     this.workerScript = path.join(
@@ -148,6 +148,7 @@ export class Bootstrap extends EventEmitter {
       this.workerImplementation = null;
       this.uiServer?.stop();
       await this.storage?.close();
+      this.resetCounters();
       this.initializedCounters = false;
       this.started = false;
     } else {
@@ -259,8 +260,7 @@ export class Bootstrap extends EventEmitter {
 
   private initializeCounters() {
     if (this.initializedCounters === false) {
-      this.numberOfChargingStationTemplates = 0;
-      this.numberOfChargingStations = 0;
+      this.resetCounters();
       const stationTemplateUrls = Configuration.getStationTemplateUrls();
       if (Utils.isNotEmptyArray(stationTemplateUrls)) {
         this.numberOfChargingStationTemplates = stationTemplateUrls.length;
@@ -279,11 +279,16 @@ export class Bootstrap extends EventEmitter {
         );
         process.exit(exitCodes.noChargingStationTemplates);
       }
-      this.numberOfStartedChargingStations = 0;
       this.initializedCounters = true;
     }
   }
 
+  private resetCounters(): void {
+    this.numberOfChargingStationTemplates = 0;
+    this.numberOfChargingStations = 0;
+    this.numberOfStartedChargingStations = 0;
+  }
+
   private async startChargingStation(
     index: number,
     stationTemplateUrl: StationTemplateUrl