From ca2c1a543220e4b8ef789b8187f6271552272211 Mon Sep 17 00:00:00 2001 From: Felipe Cotrin Date: Thu, 20 Oct 2022 09:40:36 -0300 Subject: [PATCH 1/5] feat/splitColon Tests --- .../tcore-api/src/Helpers/splitColon.test.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 packages/tcore-api/src/Helpers/splitColon.test.ts diff --git a/packages/tcore-api/src/Helpers/splitColon.test.ts b/packages/tcore-api/src/Helpers/splitColon.test.ts new file mode 100644 index 0000000..cf4769d --- /dev/null +++ b/packages/tcore-api/src/Helpers/splitColon.test.ts @@ -0,0 +1,18 @@ +import splitColon from "./splitColon"; + +describe("Split Colon", () => { + it("should split colon", () => { + const value1 = "value1"; + const value2 = "value2"; + const result = splitColon(`${value1}:${value2}`); + expect(result[0]).toBe(value1); + expect(result[1]).toBe(value2); + }); + it("should have ':' to be able to split", () => { + const value1 = "value1"; + const value2 = undefined; + const result = splitColon(`${value1}`); + expect(result[0]).toBe(value1); + expect(result[1]).toBe(value2); + }); +}); From e35ef3a97e6950933a1f31ca8011629d0de9bf1a Mon Sep 17 00:00:00 2001 From: Felipe Cotrin Date: Thu, 20 Oct 2022 09:40:54 -0300 Subject: [PATCH 2/5] feat/removeNullValues Tests --- .../src/Helpers/removeNullValues.test.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 packages/tcore-api/src/Helpers/removeNullValues.test.ts diff --git a/packages/tcore-api/src/Helpers/removeNullValues.test.ts b/packages/tcore-api/src/Helpers/removeNullValues.test.ts new file mode 100644 index 0000000..cbd1836 --- /dev/null +++ b/packages/tcore-api/src/Helpers/removeNullValues.test.ts @@ -0,0 +1,18 @@ +import removeNullValues from "./removeNullValues"; + +describe("Remove Null Values", () => { + it("should remove null values from an object", () => { + const value = { variable: "temperature", value: 12, group: null }; + const result = removeNullValues(value); + expect(result).toStrictEqual({ variable: "temperature", value: 12 }); + }); + it("should remove null values from an array of objects"), + () => { + const value = [ + { variable: "temperature", value: 15, group: null }, + { variable: "humidity", value: null }, + ]; + const result = removeNullValues(value); + expect(result).toStrictEqual([{ variable: "temperature", value: 15 }, { variable: "humidity" }]); + }; +}); From d71a47bac6bf6902f3fd00f6637b19c132d96a1d Mon Sep 17 00:00:00 2001 From: Felipe Cotrin Date: Thu, 20 Oct 2022 15:27:37 -0300 Subject: [PATCH 3/5] fix/removeNullValues Test --- .../src/Helpers/removeNullValues.test.ts | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/packages/tcore-api/src/Helpers/removeNullValues.test.ts b/packages/tcore-api/src/Helpers/removeNullValues.test.ts index cbd1836..47ec917 100644 --- a/packages/tcore-api/src/Helpers/removeNullValues.test.ts +++ b/packages/tcore-api/src/Helpers/removeNullValues.test.ts @@ -4,15 +4,11 @@ describe("Remove Null Values", () => { it("should remove null values from an object", () => { const value = { variable: "temperature", value: 12, group: null }; const result = removeNullValues(value); - expect(result).toStrictEqual({ variable: "temperature", value: 12 }); + expect(result).toEqual({ variable: "temperature", value: 12 }); + }); + it("should remove null values from an object", () => { + const value = { variable: "temperature", value: 12, group: undefined }; + const result = removeNullValues(value); + expect(result).toEqual({ variable: "temperature", value: 12 }); }); - it("should remove null values from an array of objects"), - () => { - const value = [ - { variable: "temperature", value: 15, group: null }, - { variable: "humidity", value: null }, - ]; - const result = removeNullValues(value); - expect(result).toStrictEqual([{ variable: "temperature", value: 15 }, { variable: "humidity" }]); - }; }); From f21222d4732006224d806510ee1d12f2ba06172e Mon Sep 17 00:00:00 2001 From: Felipe Cotrin Date: Thu, 20 Oct 2022 16:08:23 -0300 Subject: [PATCH 4/5] feat/Time Test --- packages/tcore-api/src/Helpers/Time.test.ts | 228 ++++++++++++++++++++ packages/tcore-api/src/Helpers/Time.ts | 2 +- 2 files changed, 229 insertions(+), 1 deletion(-) create mode 100644 packages/tcore-api/src/Helpers/Time.test.ts diff --git a/packages/tcore-api/src/Helpers/Time.test.ts b/packages/tcore-api/src/Helpers/Time.test.ts new file mode 100644 index 0000000..fe06cf0 --- /dev/null +++ b/packages/tcore-api/src/Helpers/Time.test.ts @@ -0,0 +1,228 @@ +import { fixDurationMoment, parseRelativeDate } from "./Time"; + +describe("Fix Duration Moment", () => { + it("should fix the duration", () => { + const duration = "S"; + const result = fixDurationMoment(duration); + expect(result).toBe("millisecond"); + }); + it("should fix the duration", () => { + const duration = "SS"; + const result = fixDurationMoment(duration); + expect(result).toBe("milliseconds"); + }); + it("should fix the duration", () => { + const duration = "s"; + const result = fixDurationMoment(duration); + expect(result).toBe("second"); + }); + it("should fix the duration", () => { + const duration = "ss"; + const result = fixDurationMoment(duration); + expect(result).toBe("seconds"); + }); + it("should fix the duration", () => { + const duration = "m"; + const result = fixDurationMoment(duration); + expect(result).toBe("minute"); + }); + it("should fix the duration", () => { + const duration = "mm"; + const result = fixDurationMoment(duration); + expect(result).toBe("minutes"); + }); + it("should fix the duration", () => { + const duration = "h"; + const result = fixDurationMoment(duration); + expect(result).toBe("hour"); + }); + it("should fix the duration", () => { + const duration = "hh"; + const result = fixDurationMoment(duration); + expect(result).toBe("hours"); + }); + it("should fix the duration", () => { + const duration = "d"; + const result = fixDurationMoment(duration); + expect(result).toBe("day"); + }); + it("should fix the duration", () => { + const duration = "dd"; + const result = fixDurationMoment(duration); + expect(result).toBe("days"); + }); + it("should fix the duration", () => { + const duration = "w"; + const result = fixDurationMoment(duration); + expect(result).toBe("week"); + }); + it("should fix the duration", () => { + const duration = "ww"; + const result = fixDurationMoment(duration); + expect(result).toBe("weeks"); + }); + it("should fix the duration", () => { + const duration = "M"; + const result = fixDurationMoment(duration); + expect(result).toBe("month"); + }); + it("should fix the duration", () => { + const duration = "MM"; + const result = fixDurationMoment(duration); + expect(result).toBe("months"); + }); + it("should fix the duration", () => { + const duration = "y"; + const result = fixDurationMoment(duration); + expect(result).toBe("year"); + }); + it("should fix the duration", () => { + const duration = "yy"; + const result = fixDurationMoment(duration); + expect(result).toBe("years"); + }); +}); + +describe("Parse Relative Date", () => { + it("should parse relative date using plus operator for milliseconds", () => { + const expireTime = "40 milliseconds"; + const operation = "plus"; + const fromDate = new Date(2021, 0, 1); + const result = parseRelativeDate(expireTime, operation, fromDate); + expect((result as Date).toISOString()).toBe("2021-01-01T03:00:00.040Z"); + }); + it("should parse relative date using plus operator for seconds", () => { + const expireTime = "30 seconds"; + const operation = "plus"; + const fromDate = new Date(2021, 0, 1); + const result = parseRelativeDate(expireTime, operation, fromDate); + expect((result as Date).toISOString()).toBe("2021-01-01T03:00:30.000Z"); + }); + it("should parse relative date using plus operator for minutes", () => { + const expireTime = "15 minutes"; + const operation = "plus"; + const fromDate = new Date(2021, 0, 1); + const result = parseRelativeDate(expireTime, operation, fromDate); + expect((result as Date).toISOString()).toBe("2021-01-01T03:15:00.000Z"); + }); + it("should parse relative date using plus operator for hours", () => { + const expireTime = "12 hours"; + const operation = "plus"; + const fromDate = new Date(2021, 0, 1); + const result = parseRelativeDate(expireTime, operation, fromDate); + expect((result as Date).toISOString()).toBe("2021-01-01T15:00:00.000Z"); + }); + it("should parse relative date using plus operator for days", () => { + const expireTime = "9 days"; + const operation = "plus"; + const fromDate = new Date(2021, 0, 1); + const result = parseRelativeDate(expireTime, operation, fromDate); + expect((result as Date).toISOString()).toBe("2021-01-10T03:00:00.000Z"); + }); + it("should parse relative date using plus operator for weeks", () => { + const expireTime = "6 weeks"; + const operation = "plus"; + const fromDate = new Date(2021, 0, 1); + const result = parseRelativeDate(expireTime, operation, fromDate); + expect((result as Date).toISOString()).toBe("2021-02-12T03:00:00.000Z"); + }); + it("should parse relative date using plus operator for months", () => { + const expireTime = "12 months"; + const operation = "plus"; + const fromDate = new Date(2021, 0, 1); + const result = parseRelativeDate(expireTime, operation, fromDate); + expect((result as Date).toISOString()).toBe("2022-01-01T03:00:00.000Z"); + }); + it("should parse relative date using plus operator for years", () => { + const expireTime = "3 years"; + const operation = "plus"; + const fromDate = new Date(2021, 0, 1); + const result = parseRelativeDate(expireTime, operation, fromDate); + expect((result as Date).toISOString()).toBe("2024-01-01T03:00:00.000Z"); + }); + it("should parse relative date using minus operator for milliseconds", () => { + const expireTime = "20 SS"; + const operation = "minus"; + const fromDate = new Date(2021, 0, 1); + const result = parseRelativeDate(expireTime, operation, fromDate); + expect((result as Date).toISOString()).toBe("2021-01-01T02:59:59.980Z"); + }); + it("should parse relative date using minus operator for seconds", () => { + const expireTime = "60 sec"; + const operation = "minus"; + const fromDate = new Date(2021, 0, 1); + const result = parseRelativeDate(expireTime, operation, fromDate); + expect((result as Date).toISOString()).toBe("2021-01-01T02:59:00.000Z"); + }); + it("should parse relative date using minus operator for minutes", () => { + const expireTime = "15 min"; + const operation = "minus"; + const fromDate = new Date(2021, 0, 1); + const result = parseRelativeDate(expireTime, operation, fromDate); + expect((result as Date).toISOString()).toBe("2021-01-01T02:45:00.000Z"); + }); + it("should parse relative date using minus operator for hours", () => { + const expireTime = "32 hh"; + const operation = "minus"; + const fromDate = new Date(2021, 0, 1); + const result = parseRelativeDate(expireTime, operation, fromDate); + expect((result as Date).toISOString()).toBe("2020-12-30T19:00:00.000Z"); + }); + it("should parse relative date using minus operator for days", () => { + const expireTime = "5 dd"; + const operation = "minus"; + const fromDate = new Date(2021, 0, 1); + const result = parseRelativeDate(expireTime, operation, fromDate); + + expect((result as Date).toISOString()).toBe("2020-12-27T03:00:00.000Z"); + }); + it("should parse relative date using minus operator for weeks", () => { + const expireTime = "9 ww"; + const operation = "minus"; + const fromDate = new Date(2021, 0, 1); + const result = parseRelativeDate(expireTime, operation, fromDate); + + expect((result as Date).toISOString()).toBe("2020-10-30T03:00:00.000Z"); + }); + it("should parse relative date using minus operator for months", () => { + const expireTime = "6 MM"; + const operation = "minus"; + const fromDate = new Date(2021, 0, 1); + const result = parseRelativeDate(expireTime, operation, fromDate); + + expect((result as Date).toISOString()).toBe("2020-07-01T03:00:00.000Z"); + }); + it("should parse relative date using minus operator for years", () => { + const expireTime = "5 yy"; + const operation = "minus"; + const fromDate = new Date(2021, 0, 1); + const result = parseRelativeDate(expireTime, operation, fromDate); + + expect((result as Date).toISOString()).toBe("2016-01-01T02:00:00.000Z"); + }); + it("should return never", () => { + const expireTime = "Never"; + const operation = "plus"; + const result = parseRelativeDate(expireTime, operation); + expect(result).toBe("never"); + }); + it("should split the expireTime string", () => { + const expireTime = "5 months"; + const operation = "plus"; + const fn = () => parseRelativeDate(expireTime, operation); + expect(fn).resolves; + }); + it("should have a number to split the expireTime string", () => { + const expireTime = "months"; + const operation = "plus"; + const fn = () => parseRelativeDate(expireTime, operation); + expect(fn).rejects.toThrowError("Invalid relative time"); + }); + it("should have a valid time", () => { + const expireTime = "3 days"; + const operation = "plus"; + const fromDate = new Date(1, 10, 2020); + const fn = () => parseRelativeDate(expireTime, operation, fromDate); + expect(fn).rejects.toThrowError("Invalid relative time"); + }); +}); diff --git a/packages/tcore-api/src/Helpers/Time.ts b/packages/tcore-api/src/Helpers/Time.ts index 113ff81..b8a2e7d 100644 --- a/packages/tcore-api/src/Helpers/Time.ts +++ b/packages/tcore-api/src/Helpers/Time.ts @@ -57,4 +57,4 @@ function parseRelativeDate(expireTime: string | undefined, operation: "plus" | " return time.toJSDate(); } -export { parseRelativeDate }; +export { parseRelativeDate, fixDurationMoment }; From 2d3d6490eafa8146d8f86438a79c57be9e2fe0cb Mon Sep 17 00:00:00 2001 From: Felipe Cotrin Date: Fri, 21 Oct 2022 15:30:54 -0300 Subject: [PATCH 5/5] fix/Time Test --- packages/tcore-api/src/Helpers/Time.test.ts | 39 +++++++++++---------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/packages/tcore-api/src/Helpers/Time.test.ts b/packages/tcore-api/src/Helpers/Time.test.ts index fe06cf0..d6d6875 100644 --- a/packages/tcore-api/src/Helpers/Time.test.ts +++ b/packages/tcore-api/src/Helpers/Time.test.ts @@ -89,84 +89,84 @@ describe("Parse Relative Date", () => { const operation = "plus"; const fromDate = new Date(2021, 0, 1); const result = parseRelativeDate(expireTime, operation, fromDate); - expect((result as Date).toISOString()).toBe("2021-01-01T03:00:00.040Z"); + expect((result as Date).toISOString()).toBe("2021-01-01T00:00:00.040Z"); }); it("should parse relative date using plus operator for seconds", () => { const expireTime = "30 seconds"; const operation = "plus"; const fromDate = new Date(2021, 0, 1); const result = parseRelativeDate(expireTime, operation, fromDate); - expect((result as Date).toISOString()).toBe("2021-01-01T03:00:30.000Z"); + expect((result as Date).toISOString()).toBe("2021-01-01T00:00:30.000Z"); }); it("should parse relative date using plus operator for minutes", () => { const expireTime = "15 minutes"; const operation = "plus"; const fromDate = new Date(2021, 0, 1); const result = parseRelativeDate(expireTime, operation, fromDate); - expect((result as Date).toISOString()).toBe("2021-01-01T03:15:00.000Z"); + expect((result as Date).toISOString()).toBe("2021-01-01T00:15:00.000Z"); }); it("should parse relative date using plus operator for hours", () => { const expireTime = "12 hours"; const operation = "plus"; const fromDate = new Date(2021, 0, 1); const result = parseRelativeDate(expireTime, operation, fromDate); - expect((result as Date).toISOString()).toBe("2021-01-01T15:00:00.000Z"); + expect((result as Date).toISOString()).toBe("2021-01-01T12:00:00.000Z"); }); it("should parse relative date using plus operator for days", () => { const expireTime = "9 days"; const operation = "plus"; const fromDate = new Date(2021, 0, 1); const result = parseRelativeDate(expireTime, operation, fromDate); - expect((result as Date).toISOString()).toBe("2021-01-10T03:00:00.000Z"); + expect((result as Date).toISOString()).toBe("2021-01-10T00:00:00.000Z"); }); it("should parse relative date using plus operator for weeks", () => { const expireTime = "6 weeks"; const operation = "plus"; const fromDate = new Date(2021, 0, 1); const result = parseRelativeDate(expireTime, operation, fromDate); - expect((result as Date).toISOString()).toBe("2021-02-12T03:00:00.000Z"); + expect((result as Date).toISOString()).toBe("2021-02-12T00:00:00.000Z"); }); it("should parse relative date using plus operator for months", () => { const expireTime = "12 months"; const operation = "plus"; const fromDate = new Date(2021, 0, 1); const result = parseRelativeDate(expireTime, operation, fromDate); - expect((result as Date).toISOString()).toBe("2022-01-01T03:00:00.000Z"); + expect((result as Date).toISOString()).toBe("2022-01-01T00:00:00.000Z"); }); it("should parse relative date using plus operator for years", () => { const expireTime = "3 years"; const operation = "plus"; const fromDate = new Date(2021, 0, 1); const result = parseRelativeDate(expireTime, operation, fromDate); - expect((result as Date).toISOString()).toBe("2024-01-01T03:00:00.000Z"); + expect((result as Date).toISOString()).toBe("2024-01-01T00:00:00.000Z"); }); it("should parse relative date using minus operator for milliseconds", () => { const expireTime = "20 SS"; const operation = "minus"; const fromDate = new Date(2021, 0, 1); const result = parseRelativeDate(expireTime, operation, fromDate); - expect((result as Date).toISOString()).toBe("2021-01-01T02:59:59.980Z"); + expect((result as Date).toISOString()).toBe("2020-12-31T23:59:59.980Z"); }); it("should parse relative date using minus operator for seconds", () => { const expireTime = "60 sec"; const operation = "minus"; const fromDate = new Date(2021, 0, 1); const result = parseRelativeDate(expireTime, operation, fromDate); - expect((result as Date).toISOString()).toBe("2021-01-01T02:59:00.000Z"); + expect((result as Date).toISOString()).toBe("2020-12-31T23:59:00.000Z"); }); it("should parse relative date using minus operator for minutes", () => { const expireTime = "15 min"; const operation = "minus"; const fromDate = new Date(2021, 0, 1); const result = parseRelativeDate(expireTime, operation, fromDate); - expect((result as Date).toISOString()).toBe("2021-01-01T02:45:00.000Z"); + expect((result as Date).toISOString()).toBe("2020-12-31T23:45:00.000Z"); }); it("should parse relative date using minus operator for hours", () => { const expireTime = "32 hh"; const operation = "minus"; const fromDate = new Date(2021, 0, 1); const result = parseRelativeDate(expireTime, operation, fromDate); - expect((result as Date).toISOString()).toBe("2020-12-30T19:00:00.000Z"); + expect((result as Date).toISOString()).toBe("2020-12-30T16:00:00.000Z"); }); it("should parse relative date using minus operator for days", () => { const expireTime = "5 dd"; @@ -174,7 +174,7 @@ describe("Parse Relative Date", () => { const fromDate = new Date(2021, 0, 1); const result = parseRelativeDate(expireTime, operation, fromDate); - expect((result as Date).toISOString()).toBe("2020-12-27T03:00:00.000Z"); + expect((result as Date).toISOString()).toBe("2020-12-27T00:00:00.000Z"); }); it("should parse relative date using minus operator for weeks", () => { const expireTime = "9 ww"; @@ -182,7 +182,7 @@ describe("Parse Relative Date", () => { const fromDate = new Date(2021, 0, 1); const result = parseRelativeDate(expireTime, operation, fromDate); - expect((result as Date).toISOString()).toBe("2020-10-30T03:00:00.000Z"); + expect((result as Date).toISOString()).toBe("2020-10-30T00:00:00.000Z"); }); it("should parse relative date using minus operator for months", () => { const expireTime = "6 MM"; @@ -190,7 +190,7 @@ describe("Parse Relative Date", () => { const fromDate = new Date(2021, 0, 1); const result = parseRelativeDate(expireTime, operation, fromDate); - expect((result as Date).toISOString()).toBe("2020-07-01T03:00:00.000Z"); + expect((result as Date).toISOString()).toBe("2020-07-01T00:00:00.000Z"); }); it("should parse relative date using minus operator for years", () => { const expireTime = "5 yy"; @@ -198,7 +198,7 @@ describe("Parse Relative Date", () => { const fromDate = new Date(2021, 0, 1); const result = parseRelativeDate(expireTime, operation, fromDate); - expect((result as Date).toISOString()).toBe("2016-01-01T02:00:00.000Z"); + expect((result as Date).toISOString()).toBe("2016-01-01T00:00:00.000Z"); }); it("should return never", () => { const expireTime = "Never"; @@ -216,13 +216,14 @@ describe("Parse Relative Date", () => { const expireTime = "months"; const operation = "plus"; const fn = () => parseRelativeDate(expireTime, operation); - expect(fn).rejects.toThrowError("Invalid relative time"); + expect(fn).toThrowError("Invalid relative time"); }); it("should have a valid time", () => { const expireTime = "3 days"; const operation = "plus"; - const fromDate = new Date(1, 10, 2020); + const fromDate = "invalid date"; + // @ts-expect-error invalid date const fn = () => parseRelativeDate(expireTime, operation, fromDate); - expect(fn).rejects.toThrowError("Invalid relative time"); + expect(fn).toThrowError("Invalid relative time"); }); });