diff --git a/index.js b/index.js index 81374656c..ed0f92f74 100644 --- a/index.js +++ b/index.js @@ -12,7 +12,7 @@ let unsolicitedStop = false; let watchdogDelays = [2000, 60000, 300000, 900000, 1800000, 3600000]; if (process.env.Z2M_WATCHDOG != null && process.env.Z2M_WATCHDOG !== "default") { - if (/^\d+(.\d+)?(,\d+(.\d+)?)*$/.test(process.env.Z2M_WATCHDOG)) { + if (/^\d+(\.\d+)?(,\d+(\.\d+)?)*$/.test(process.env.Z2M_WATCHDOG)) { watchdogDelays = process.env.Z2M_WATCHDOG.split(",").map((v) => Number.parseFloat(v) * 60000); } else { console.log(`Invalid watchdog delays (must use number-only CSV format representing minutes, example: 'Z2M_WATCHDOG=1,5,15,30,60'.`); diff --git a/test/data.test.ts b/test/data.test.ts index cd71a2392..57531889f 100644 --- a/test/data.test.ts +++ b/test/data.test.ts @@ -15,12 +15,21 @@ describe("Data", () => { const expected = tmp.dirSync().name; process.env.ZIGBEE2MQTT_DATA = expected; data._testReload(); - const actual = data.getPath(); - expect(actual).toBe(expected); - expect(data.joinPath("test")).toStrictEqual(path.join(expected, "test")); - expect(data.joinPath("/test")).toStrictEqual(path.resolve(expected, "/test")); - delete process.env.ZIGBEE2MQTT_DATA; - data._testReload(); + + try { + const actual = data.getPath(); + expect(actual).toBe(expected); + expect(data.joinPath("test")).toStrictEqual(path.join(expected, "test")); + expect(data.joinPath("/test")).toStrictEqual(path.resolve(expected, "/test")); + } finally { + delete process.env.ZIGBEE2MQTT_DATA; + data._testReload(); + } + }); + + it("Should return data path when joinPath with empty string", () => { + const expected = data.getPath(); + expect(data.joinPath("")).toStrictEqual(expected); }); }); });