Add Utils unit tests
authorJérôme Benoit <jerome.benoit@sap.com>
Tue, 25 Oct 2022 22:02:25 +0000 (00:02 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Tue, 25 Oct 2022 22:02:25 +0000 (00:02 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
src/utils/Utils.ts
test/utils/UtilsTest.ts [new file with mode: 0644]

index 1d422af2fb102ede225366fb4443ac51fb837b2a..719200fa93e40999d71b6553469ec4f98498ec6e 100644 (file)
@@ -185,17 +185,17 @@ export default class Utils {
   }
 
   public static isEmptyArray(object: unknown): boolean {
-    if (!object) {
-      return true;
+    if (!Array.isArray(object)) {
+      return false;
     }
-    if (Array.isArray(object) === true && (object as unknown[]).length > 0) {
+    if ((object as unknown[]).length > 0) {
       return false;
     }
     return true;
   }
 
   public static isEmptyObject(obj: object): boolean {
-    if (obj.constructor !== Object) {
+    if (obj?.constructor !== Object) {
       return false;
     }
     // Iterates over the keys of an object, if
diff --git a/test/utils/UtilsTest.ts b/test/utils/UtilsTest.ts
new file mode 100644 (file)
index 0000000..bc260ce
--- /dev/null
@@ -0,0 +1,94 @@
+import expect from 'expect';
+
+import Utils from '../../src/utils/Utils';
+
+describe('Utils test suite', () => {
+  it('Verify secureRandom()', () => {
+    const random = Utils.secureRandom();
+    expect(typeof random === 'number').toBe(true);
+    expect(random).toBeGreaterThanOrEqual(0);
+    expect(random).toBeLessThan(1);
+  });
+
+  it('Verify getRandomInteger()', () => {
+    const randomInteger = Utils.getRandomInteger();
+    expect(Number.isSafeInteger(randomInteger)).toBe(true);
+    expect(randomInteger).toBeGreaterThanOrEqual(0);
+    expect(randomInteger).toBeLessThanOrEqual(Number.MAX_SAFE_INTEGER);
+    expect(() => Utils.getRandomInteger(0, 1)).toThrowError(new RangeError('Invalid interval'));
+    expect(() => Utils.getRandomInteger(-1)).toThrowError(new RangeError('Invalid interval'));
+    expect(() => Utils.getRandomInteger(0, -1)).toThrowError(new RangeError('Invalid interval'));
+  });
+
+  it('Verify getRandomFloat()', () => {
+    const randomFloat = Utils.getRandomFloat();
+    expect(typeof randomFloat === 'number').toBe(true);
+    expect(randomFloat).toBeGreaterThanOrEqual(0);
+    expect(randomFloat).toBeLessThanOrEqual(Number.MAX_VALUE);
+    expect(() => Utils.getRandomFloat(0, 1)).toThrowError(new RangeError('Invalid interval'));
+    expect(() => Utils.getRandomFloat(-1)).toThrowError(new RangeError('Invalid interval'));
+    expect(() => Utils.getRandomFloat(0, -1)).toThrowError(new RangeError('Invalid interval'));
+  });
+
+  it('Verify isIterable()', () => {
+    expect(Utils.isIterable('')).toBe(false);
+    expect(Utils.isIterable(' ')).toBe(true);
+    expect(Utils.isIterable('test')).toBe(true);
+    expect(Utils.isIterable(null)).toBe(false);
+    expect(Utils.isIterable(undefined)).toBe(false);
+    expect(Utils.isIterable(0)).toBe(false);
+    expect(Utils.isIterable({})).toBe(false);
+    expect(Utils.isIterable({ 1: 1 })).toBe(false);
+    expect(Utils.isIterable([])).toBe(true);
+    expect(Utils.isIterable(new Map())).toBe(true);
+    expect(Utils.isIterable(new Set())).toBe(true);
+  });
+
+  it('Verify isEmptyString()', () => {
+    expect(Utils.isEmptyString('')).toBe(true);
+    expect(Utils.isEmptyString(' ')).toBe(true);
+    expect(Utils.isEmptyString('     ')).toBe(true);
+    expect(Utils.isEmptyString('test')).toBe(false);
+    expect(Utils.isEmptyString(' test')).toBe(false);
+    expect(Utils.isEmptyString('test ')).toBe(false);
+    expect(Utils.isEmptyString(null)).toBe(false);
+    expect(Utils.isEmptyString(undefined)).toBe(false);
+    expect(Utils.isEmptyString(0)).toBe(false);
+    expect(Utils.isEmptyString({})).toBe(false);
+    expect(Utils.isEmptyString([])).toBe(false);
+    expect(Utils.isEmptyString(new Map())).toBe(false);
+    expect(Utils.isEmptyString(new Set())).toBe(false);
+  });
+
+  it('Verify isNullOrUndefined()', () => {
+    expect(Utils.isNullOrUndefined(null)).toBe(true);
+    expect(Utils.isNullOrUndefined(undefined)).toBe(true);
+    expect(Utils.isNullOrUndefined('')).toBe(false);
+    expect(Utils.isNullOrUndefined(0)).toBe(false);
+    expect(Utils.isNullOrUndefined({})).toBe(false);
+    expect(Utils.isNullOrUndefined([])).toBe(false);
+    expect(Utils.isNullOrUndefined(new Map())).toBe(false);
+    expect(Utils.isNullOrUndefined(new Set())).toBe(false);
+  });
+
+  it('Verify isEmptyArray()', () => {
+    expect(Utils.isEmptyArray([])).toBe(true);
+    expect(Utils.isEmptyArray([1, 2])).toBe(false);
+    expect(Utils.isEmptyArray(null)).toBe(false);
+    expect(Utils.isEmptyArray(undefined)).toBe(false);
+    expect(Utils.isEmptyArray('')).toBe(false);
+    expect(Utils.isEmptyArray(0)).toBe(false);
+    expect(Utils.isEmptyArray({})).toBe(false);
+    expect(Utils.isEmptyArray(new Map())).toBe(false);
+    expect(Utils.isEmptyArray(new Set())).toBe(false);
+  });
+
+  it('Verify isEmptyObject()', () => {
+    expect(Utils.isEmptyObject({})).toBe(true);
+    expect(Utils.isEmptyObject(null)).toBe(false);
+    expect(Utils.isEmptyObject(undefined)).toBe(false);
+    expect(Utils.isEmptyObject(new Map())).toBe(false);
+    expect(Utils.isEmptyObject(new Set())).toBe(false);
+    expect(Utils.isEmptyObject({ 1: 1, 2: 2 })).toBe(false);
+  });
+});