X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Futils%2FUtils.test.ts;h=5672b032187e336ba48e6a85c73a0d5b5f981a02;hb=1d7a504ba27c38e3f8617c80cf53aed85da580af;hp=3b2a52ae88d8b33911033f607155d0c3a89daaf3;hpb=3fad0dec3efcbef64a3a417d8a7c8aef508afd5d;p=e-mobility-charging-stations-simulator.git diff --git a/tests/utils/Utils.test.ts b/tests/utils/Utils.test.ts index 3b2a52ae..5672b032 100644 --- a/tests/utils/Utils.test.ts +++ b/tests/utils/Utils.test.ts @@ -1,7 +1,10 @@ +import { randomInt } from 'node:crypto' +import { version } from 'node:process' import { describe, it } from 'node:test' import { hoursToMilliseconds, hoursToSeconds } from 'date-fns' import { expect } from 'expect' +import { satisfies } from 'semver' import { Constants } from '../../src/utils/Constants.js' import { @@ -15,20 +18,13 @@ import { formatDurationSeconds, generateUUID, getRandomFloat, - getRandomInteger, hasOwnProp, isArraySorted, isAsyncFunction, - isEmptyArray, - isEmptyObject, - isEmptyString, isNotEmptyArray, isNotEmptyString, isObject, isValidDate, - max, - min, - once, roundTo, secureRandom, sleep, @@ -99,7 +95,7 @@ await describe('Utils test suite', async () => { expect(convertToInt(undefined)).toBe(0) expect(convertToInt(null)).toBe(0) expect(convertToInt(0)).toBe(0) - const randomInteger = getRandomInteger() + const randomInteger = randomInt(Constants.MAX_RANDOM_INTEGER) expect(convertToInt(randomInteger)).toEqual(randomInteger) expect(convertToInt('-1')).toBe(-1) expect(convertToInt('1')).toBe(1) @@ -161,36 +157,6 @@ await describe('Utils test suite', async () => { expect(random).toBeLessThan(1) }) - await it('Verify getRandomInteger()', () => { - let randomInteger = getRandomInteger() - expect(Number.isSafeInteger(randomInteger)).toBe(true) - expect(randomInteger).toBeGreaterThanOrEqual(0) - expect(randomInteger).toBeLessThanOrEqual(Constants.MAX_RANDOM_INTEGER) - expect(randomInteger).not.toEqual(getRandomInteger()) - randomInteger = getRandomInteger(0, -Constants.MAX_RANDOM_INTEGER) - expect(randomInteger).toBeGreaterThanOrEqual(-Constants.MAX_RANDOM_INTEGER) - expect(randomInteger).toBeLessThanOrEqual(0) - expect(() => getRandomInteger(0, 1)).toThrow( - 'The value of "max" is out of range. It must be greater than the value of "min" (1). Received 1' - ) - expect(() => getRandomInteger(-1)).toThrow( - 'The value of "max" is out of range. It must be greater than the value of "min" (0). Received 0' - ) - expect(() => getRandomInteger(Constants.MAX_RANDOM_INTEGER + 1)).toThrow( - `The value of "max" is out of range. It must be <= ${ - Constants.MAX_RANDOM_INTEGER + 1 - }. Received 281_474_976_710_656` - ) - randomInteger = getRandomInteger(2, 1) - expect(randomInteger).toBeGreaterThanOrEqual(1) - expect(randomInteger).toBeLessThanOrEqual(2) - const maximum = 2.2 - const minimum = 1.1 - randomInteger = getRandomInteger(maximum, minimum) - expect(randomInteger).toBeLessThanOrEqual(Math.floor(maximum)) - expect(randomInteger).toBeGreaterThanOrEqual(Math.ceil(minimum)) - }) - await it('Verify roundTo()', () => { expect(roundTo(0, 2)).toBe(0) expect(roundTo(0.5, 0)).toBe(1) @@ -341,17 +307,20 @@ await describe('Utils test suite', async () => { const date = new Date() expect(clone(date)).toStrictEqual(date) expect(clone(date) === date).toBe(false) - // The URL object seems to have not enumerable properties - const url = new URL('https://domain.tld') - expect(clone(url)).toStrictEqual({}) + if (satisfies(version, '>=21.0.0')) { + const url = new URL('https://domain.tld') + expect(() => clone(url)).toThrowError(new Error('Cannot clone object of unsupported type.')) + } const map = new Map([['1', '2']]) expect(clone(map)).toStrictEqual(map) + expect(clone(map) === map).toBe(false) const set = new Set(['1']) expect(clone(set)).toStrictEqual(set) + expect(clone(set) === set).toBe(false) const weakMap = new WeakMap([[{ 1: 1 }, { 2: 2 }]]) - expect(() => clone(weakMap)).toThrow(new Error('# could not be cloned.')) + expect(() => clone(weakMap)).toThrowError(new Error('# could not be cloned.')) const weakSet = new WeakSet([{ 1: 1 }, { 2: 2 }]) - expect(() => clone(weakSet)).toThrow(new Error('# could not be cloned.')) + expect(() => clone(weakSet)).toThrowError(new Error('# could not be cloned.')) }) await it('Verify hasOwnProp()', () => { @@ -370,24 +339,6 @@ await describe('Utils test suite', async () => { expect(hasOwnProp({ 1: '1' }, 2)).toBe(false) }) - await it('Verify isEmptyString()', () => { - expect(isEmptyString('')).toBe(true) - expect(isEmptyString(' ')).toBe(true) - expect(isEmptyString(' ')).toBe(true) - expect(isEmptyString('test')).toBe(false) - expect(isEmptyString(' test')).toBe(false) - expect(isEmptyString('test ')).toBe(false) - expect(isEmptyString(undefined)).toBe(true) - expect(isEmptyString(null)).toBe(true) - expect(isEmptyString(0)).toBe(false) - expect(isEmptyString({})).toBe(false) - expect(isEmptyString([])).toBe(false) - expect(isEmptyString(new Map())).toBe(false) - expect(isEmptyString(new Set())).toBe(false) - expect(isEmptyString(new WeakMap())).toBe(false) - expect(isEmptyString(new WeakSet())).toBe(false) - }) - await it('Verify isNotEmptyString()', () => { expect(isNotEmptyString('')).toBe(false) expect(isNotEmptyString(' ')).toBe(false) @@ -406,22 +357,6 @@ await describe('Utils test suite', async () => { expect(isNotEmptyString(new WeakSet())).toBe(false) }) - await it('Verify isEmptyArray()', () => { - expect(isEmptyArray([])).toBe(true) - expect(isEmptyArray([1, 2])).toBe(false) - expect(isEmptyArray(['1', '2'])).toBe(false) - expect(isEmptyArray(undefined)).toBe(false) - expect(isEmptyArray(null)).toBe(false) - expect(isEmptyArray('')).toBe(false) - expect(isEmptyArray('test')).toBe(false) - expect(isEmptyArray(0)).toBe(false) - expect(isEmptyArray({})).toBe(false) - expect(isEmptyArray(new Map())).toBe(false) - expect(isEmptyArray(new Set())).toBe(false) - expect(isEmptyArray(new WeakMap())).toBe(false) - expect(isEmptyArray(new WeakSet())).toBe(false) - }) - await it('Verify isNotEmptyArray()', () => { expect(isNotEmptyArray([])).toBe(false) expect(isNotEmptyArray([1, 2])).toBe(true) @@ -438,17 +373,6 @@ await describe('Utils test suite', async () => { expect(isNotEmptyArray(new WeakSet())).toBe(false) }) - await it('Verify isEmptyObject()', () => { - expect(isEmptyObject({})).toBe(true) - expect(isEmptyObject({ 1: 1, 2: 2 })).toBe(false) - expect(isEmptyObject([])).toBe(false) - expect(isEmptyObject([1, 2])).toBe(false) - expect(isEmptyObject(new Map())).toBe(false) - expect(isEmptyObject(new Set())).toBe(false) - expect(isEmptyObject(new WeakMap())).toBe(false) - expect(isEmptyObject(new WeakSet())).toBe(false) - }) - await it('Verify isArraySorted()', () => { expect( isArraySorted([], (a, b) => { @@ -464,35 +388,4 @@ await describe('Utils test suite', async () => { expect(isArraySorted([1, 2, 3, 5, 4], (a, b) => a - b)).toBe(false) expect(isArraySorted([2, 1, 3, 4, 5], (a, b) => a - b)).toBe(false) }) - - await it('Verify once()', () => { - let called = 0 - const fn = (): number => ++called - const onceFn = once(fn, this) - const result1 = onceFn() - expect(called).toBe(1) - expect(result1).toBe(1) - const result2 = onceFn() - expect(called).toBe(1) - expect(result2).toBe(1) - const result3 = onceFn() - expect(called).toBe(1) - expect(result3).toBe(1) - }) - - await it('Verify min()', () => { - expect(min()).toBe(Infinity) - expect(min(0, 1)).toBe(0) - expect(min(1, 0)).toBe(0) - expect(min(0, -1)).toBe(-1) - expect(min(-1, 0)).toBe(-1) - }) - - await it('Verify max()', () => { - expect(max()).toBe(-Infinity) - expect(max(0, 1)).toBe(1) - expect(max(1, 0)).toBe(1) - expect(max(0, -1)).toBe(0) - expect(max(-1, 0)).toBe(0) - }) })