From df645d8f4155cf4aa401603857f6a6784b5db871 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Tue, 1 Nov 2022 10:57:06 +0100 Subject: [PATCH] Add unit tests for more Utils. helpers MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- src/utils/Utils.ts | 15 ++++++---- test/utils/UtilsTest.ts | 61 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+), 5 deletions(-) diff --git a/src/utils/Utils.ts b/src/utils/Utils.ts index e2afc28a..d3b9872d 100644 --- a/src/utils/Utils.ts +++ b/src/utils/Utils.ts @@ -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; diff --git a/test/utils/UtilsTest.ts b/test/utils/UtilsTest.ts index 705225b0..1607cf53 100644 --- a/test/utils/UtilsTest.ts +++ b/test/utils/UtilsTest.ts @@ -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); -- 2.34.1