Add unit tests for more Utils. helpers
authorJérôme Benoit <jerome.benoit@sap.com>
Tue, 1 Nov 2022 09:57:06 +0000 (10:57 +0100)
committerJérôme Benoit <jerome.benoit@sap.com>
Tue, 1 Nov 2022 09:57:06 +0000 (10:57 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
src/utils/Utils.ts
test/utils/UtilsTest.ts

index e2afc28a6412631c8d4cecb49d52991c228ccc06..d3b9872da8206bb0f840ccc975bc137302e41e91 100644 (file)
@@ -75,6 +75,9 @@ export default class Utils {
       // Create Object
       changedValue = parseInt(value as string);
     }
+    if (typeof value === 'number') {
+      changedValue = Math.trunc(value);
+    }
     return changedValue;
   }
 
@@ -93,15 +96,17 @@ export default class Utils {
 
   public static convertToBoolean(value: unknown): boolean {
     let result = false;
-    // Check boolean
     if (value) {
       // Check the type
       if (typeof value === 'boolean') {
-        // Already a boolean
         result = value;
-      } else {
-        // Convert
-        result = value === 'true';
+      } else if (
+        Utils.isString(value) &&
+        ((value as string).toLowerCase() === 'true' || value === '1')
+      ) {
+        result = true;
+      } else if (typeof value === 'number' && value === 1) {
+        result = true;
       }
     }
     return result;
index 705225b0398081c4dd09dcdf2b08232a991b797d..1607cf53967e96be7b0821edfb4b8d9d5f59f252 100644 (file)
@@ -22,6 +22,67 @@ describe('Utils test suite', () => {
     expect(end - start).toBeGreaterThanOrEqual(1000);
   });
 
+  it('Verify convertToDate()', () => {
+    const dateStr = '2020-01-01T00:00:00.000Z';
+    let date = Utils.convertToDate(dateStr);
+    expect(date).toBeInstanceOf(Date);
+    expect(date.getUTCFullYear()).toBe(2020);
+    expect(date.getUTCMonth()).toBe(0);
+    expect(date.getUTCDate()).toBe(1);
+    expect(date.getUTCHours()).toBe(0);
+    expect(date.getUTCMinutes()).toBe(0);
+    expect(date.getUTCSeconds()).toBe(0);
+    expect(date.getUTCMilliseconds()).toBe(0);
+    date = Utils.convertToDate(new Date(dateStr));
+    expect(date).toBeInstanceOf(Date);
+    expect(date.getUTCFullYear()).toBe(2020);
+    expect(date.getUTCMonth()).toBe(0);
+    expect(date.getUTCDate()).toBe(1);
+    expect(date.getUTCHours()).toBe(0);
+    expect(date.getUTCMinutes()).toBe(0);
+    expect(date.getUTCSeconds()).toBe(0);
+    expect(date.getUTCMilliseconds()).toBe(0);
+  });
+
+  it('Verify convertToInt()', () => {
+    const random = Utils.getRandomInteger();
+    expect(Utils.convertToInt(random)).toEqual(random);
+    expect(Utils.convertToInt('1')).toBe(1);
+    expect(Utils.convertToInt('1.1')).toBe(1);
+    expect(Utils.convertToInt('1.9')).toBe(1);
+    expect(Utils.convertToInt('1.999')).toBe(1);
+    expect(Utils.convertToInt(1)).toBe(1);
+    expect(Utils.convertToInt(1.1)).toBe(1);
+    expect(Utils.convertToInt(1.9)).toBe(1);
+    expect(Utils.convertToInt(1.999)).toBe(1);
+  });
+
+  it('Verify convertToFloat()', () => {
+    const random = Utils.getRandomFloat();
+    expect(Utils.convertToFloat(random)).toEqual(random);
+    expect(Utils.convertToFloat('1')).toBe(1);
+    expect(Utils.convertToFloat('1.1')).toBe(1.1);
+    expect(Utils.convertToFloat('1.9')).toBe(1.9);
+    expect(Utils.convertToFloat('1.999')).toBe(1.999);
+    expect(Utils.convertToFloat(1)).toBe(1);
+    expect(Utils.convertToFloat(1.1)).toBe(1.1);
+    expect(Utils.convertToFloat(1.9)).toBe(1.9);
+    expect(Utils.convertToFloat(1.999)).toBe(1.999);
+  });
+
+  it('Verify convertToBoolean()', () => {
+    expect(Utils.convertToBoolean('true')).toBe(true);
+    expect(Utils.convertToBoolean('false')).toBe(false);
+    expect(Utils.convertToBoolean('TRUE')).toBe(true);
+    expect(Utils.convertToBoolean('FALSE')).toBe(false);
+    expect(Utils.convertToBoolean('1')).toBe(true);
+    expect(Utils.convertToBoolean('0')).toBe(false);
+    expect(Utils.convertToBoolean(1)).toBe(true);
+    expect(Utils.convertToBoolean(0)).toBe(false);
+    expect(Utils.convertToBoolean(true)).toBe(true);
+    expect(Utils.convertToBoolean(false)).toBe(false);
+  });
+
   it('Verify secureRandom()', () => {
     const random = Utils.secureRandom();
     expect(typeof random === 'number').toBe(true);