Empty string handling fixes
[e-mobility-charging-stations-simulator.git] / src / charging-station / ChargingStationUtils.ts
index c10a3a15b229579523ad92fbf5efb679a8cf5961..e73f4d50670628cd61dfc82a2604ef7f9ae2d9fe 100644 (file)
@@ -78,8 +78,10 @@ export class ChargingStationUtils {
     return crypto
       .createHash(Constants.DEFAULT_HASH_ALGORITHM)
       .update(
-        JSON.stringify(chargingStationInfo) +
-          ChargingStationUtils.getChargingStationId(index, stationTemplate)
+        `${JSON.stringify(chargingStationInfo)}${ChargingStationUtils.getChargingStationId(
+          index,
+          stationTemplate
+        )}`
       )
       .digest('hex');
   }
@@ -208,7 +210,7 @@ export class ChargingStationUtils {
     if (!Utils.isUndefined(template[key])) {
       logger.warn(
         `${logPrefix} Deprecated template key '${key}' usage in file '${templateFile}'${
-          logMsgToAppend && `. ${logMsgToAppend}`
+          !Utils.isEmptyString(logMsgToAppend) && `. ${logMsgToAppend}`
         }`
       );
     }
@@ -267,14 +269,14 @@ export class ChargingStationUtils {
         })
       : '';
     stationInfo.chargePointSerialNumber =
-      stationTemplate?.chargePointSerialNumberPrefix &&
-      stationTemplate.chargePointSerialNumberPrefix + serialNumberSuffix;
+      !Utils.isEmptyString(stationTemplate?.chargePointSerialNumberPrefix) &&
+      `${stationTemplate.chargePointSerialNumberPrefix}${serialNumberSuffix}`;
     stationInfo.chargeBoxSerialNumber =
-      stationTemplate?.chargeBoxSerialNumberPrefix &&
-      stationTemplate.chargeBoxSerialNumberPrefix + serialNumberSuffix;
+      !Utils.isEmptyString(stationTemplate?.chargeBoxSerialNumberPrefix) &&
+      `${stationTemplate.chargeBoxSerialNumberPrefix}${serialNumberSuffix}`;
     stationInfo.meterSerialNumber =
-      stationTemplate?.meterSerialNumberPrefix &&
-      stationTemplate.meterSerialNumberPrefix + serialNumberSuffix;
+      !Utils.isEmptyString(stationTemplate?.meterSerialNumberPrefix) &&
+      `${stationTemplate.meterSerialNumberPrefix}${serialNumberSuffix}`;
   }
 
   public static propagateSerialNumber(
@@ -323,9 +325,9 @@ export class ChargingStationUtils {
     // Get charging profiles for connector and sort by stack level
     chargingProfiles = chargingStation
       .getConnectorStatus(connectorId)
-      .chargingProfiles.sort((a, b) => b.stackLevel - a.stackLevel);
+      ?.chargingProfiles?.sort((a, b) => b.stackLevel - a.stackLevel);
     // Get profiles on connector 0
-    if (chargingStation.getConnectorStatus(0).chargingProfiles) {
+    if (chargingStation.getConnectorStatus(0)?.chargingProfiles) {
       chargingProfiles.push(
         ...chargingStation
           .getConnectorStatus(0)
@@ -338,8 +340,8 @@ export class ChargingStationUtils {
         chargingStation.logPrefix()
       );
       if (!Utils.isNullOrUndefined(result)) {
-        limit = result.limit;
-        matchingChargingProfile = result.matchingChargingProfile;
+        limit = result?.limit;
+        matchingChargingProfile = result?.matchingChargingProfile;
         switch (chargingStation.getCurrentOutType()) {
           case CurrentType.AC:
             limit =