test: improve isArraySorted() test
[e-mobility-charging-stations-simulator.git] / test / utils / Utils.test.ts
index 5b9f81515c9686bcbea50afe1b781b3d6c108036..96fd18b42096a485871c34568c3e8cbce791f4bf 100644 (file)
@@ -1,3 +1,4 @@
+import { hoursToMilliseconds, hoursToSeconds, isValid } from 'date-fns';
 import { expect } from 'expect';
 
 import { Constants } from '../../src/utils/Constants';
@@ -7,6 +8,8 @@ import {
   convertToDate,
   convertToFloat,
   convertToInt,
+  formatDurationMilliSeconds,
+  formatDurationSeconds,
   generateUUID,
   getRandomFloat,
   getRandomInteger,
@@ -21,7 +24,7 @@ import {
   isNullOrUndefined,
   isObject,
   isUndefined,
-  isValidDate,
+  isValidTime,
   roundTo,
   secureRandom,
   sleep,
@@ -48,29 +51,40 @@ describe('Utils test suite', () => {
     expect(end - start).toBeGreaterThanOrEqual(1000);
   });
 
-  it('Verify isValidDate()', () => {
-    expect(isValidDate(undefined)).toBe(false);
-    expect(isValidDate(null)).toBe(false);
-    expect(isValidDate('')).toBe(false);
-    expect(isValidDate({})).toBe(false);
-    expect(isValidDate([])).toBe(false);
-    expect(isValidDate(new Map())).toBe(false);
-    expect(isValidDate(new Set())).toBe(false);
-    expect(isValidDate(new WeakMap())).toBe(false);
-    expect(isValidDate(new WeakSet())).toBe(false);
-    expect(isValidDate(-1)).toBe(true);
-    expect(isValidDate(0)).toBe(true);
-    expect(isValidDate(1)).toBe(true);
-    expect(isValidDate(-0.5)).toBe(true);
-    expect(isValidDate(0.5)).toBe(true);
-    expect(isValidDate(new Date())).toBe(true);
+  it('Verify formatDurationMilliSeconds()', () => {
+    expect(formatDurationMilliSeconds(0)).toBe('');
+    expect(formatDurationMilliSeconds(1000)).toBe('1 second');
+    expect(formatDurationMilliSeconds(hoursToMilliseconds(4380))).toBe('182 days 12 hours');
+  });
+
+  it('Verify formatDurationSeconds()', () => {
+    expect(formatDurationSeconds(0)).toBe('');
+    expect(formatDurationSeconds(1)).toBe('1 second');
+    expect(formatDurationSeconds(hoursToSeconds(4380))).toBe('182 days 12 hours');
+  });
+
+  it('Verify isValidTime()', () => {
+    expect(isValidTime(undefined)).toBe(false);
+    expect(isValidTime(null)).toBe(false);
+    expect(isValidTime('')).toBe(false);
+    expect(isValidTime({})).toBe(false);
+    expect(isValidTime([])).toBe(false);
+    expect(isValidTime(new Map())).toBe(false);
+    expect(isValidTime(new Set())).toBe(false);
+    expect(isValidTime(new WeakMap())).toBe(false);
+    expect(isValidTime(new WeakSet())).toBe(false);
+    expect(isValidTime(-1)).toBe(true);
+    expect(isValidTime(0)).toBe(true);
+    expect(isValidTime(1)).toBe(true);
+    expect(isValidTime(-0.5)).toBe(true);
+    expect(isValidTime(0.5)).toBe(true);
+    expect(isValidTime(new Date())).toBe(true);
   });
 
   it('Verify convertToDate()', () => {
     expect(convertToDate(undefined)).toBe(undefined);
     expect(convertToDate(null)).toBe(null);
-    const invalidDate = convertToDate('');
-    expect(invalidDate instanceof Date && !isNaN(invalidDate.getTime())).toBe(false);
+    expect(isValid(convertToDate(''))).toBe(false);
     expect(convertToDate(0)).toStrictEqual(new Date('1970-01-01T00:00:00.000Z'));
     const dateStr = '2020-01-01T00:00:00.000Z';
     let date = convertToDate(dateStr);
@@ -399,5 +413,6 @@ describe('Utils test suite', () => {
     ).toBe(true);
     expect(isArraySorted<number>([1, 2, 3, 4, 5], (a, b) => a - b)).toBe(true);
     expect(isArraySorted<number>([1, 2, 3, 5, 4], (a, b) => a - b)).toBe(false);
+    expect(isArraySorted<number>([2, 1, 3, 4, 5], (a, b) => a - b)).toBe(false);
   });
 });