X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Futils.test.mjs;h=25b4e5ae0cfd21cc84e5fb523748e84e44a95e0b;hb=refs%2Fheads%2Fmaster;hp=1078c1fdbff63af8c6338a7c74349196fbfdd6b7;hpb=e9ed6eeed0f1c96d89c1506ee342b3000a95b4ba;p=poolifier.git diff --git a/tests/utils.test.mjs b/tests/utils.test.mjs index 1078c1fd..25b4e5ae 100644 --- a/tests/utils.test.mjs +++ b/tests/utils.test.mjs @@ -1,11 +1,14 @@ -import os from 'node:os' import { randomInt } from 'node:crypto' +import os from 'node:os' + import { expect } from 'expect' + +import { KillBehaviors } from '../lib/index.cjs' import { - DEFAULT_TASK_NAME, - EMPTY_FUNCTION, availableParallelism, average, + DEFAULT_TASK_NAME, + EMPTY_FUNCTION, exponentialDelay, isAsyncFunction, isKillBehavior, @@ -16,9 +19,8 @@ import { // once, round, secureRandom, - sleep + sleep, } from '../lib/utils.cjs' -import { KillBehaviors } from '../lib/index.cjs' describe('Utils test suite', () => { it('Verify DEFAULT_TASK_NAME value', () => { @@ -35,6 +37,7 @@ describe('Utils test suite', () => { expect(Number.isSafeInteger(parallelism)).toBe(true) let expectedParallelism = 1 try { + // eslint-disable-next-line n/no-unsupported-features/node-builtins expectedParallelism = os.availableParallelism() } catch { expectedParallelism = os.cpus().length @@ -147,7 +150,7 @@ describe('Utils test suite', () => { expect(isAsyncFunction('')).toBe(false) expect(isAsyncFunction([])).toBe(false) expect(isAsyncFunction(new Date())).toBe(false) - expect(isAsyncFunction(new RegExp())).toBe(false) + expect(isAsyncFunction(/[a-z]/i)).toBe(false) expect(isAsyncFunction(new Error())).toBe(false) expect(isAsyncFunction(new Map())).toBe(false) expect(isAsyncFunction(new Set())).toBe(false) @@ -167,9 +170,9 @@ describe('Utils test suite', () => { expect(isAsyncFunction(new Promise(() => {}))).toBe(false) expect(isAsyncFunction(new WeakRef({}))).toBe(false) expect(isAsyncFunction(new FinalizationRegistry(() => {}))).toBe(false) - expect(isAsyncFunction(new ArrayBuffer())).toBe(false) - expect(isAsyncFunction(new SharedArrayBuffer())).toBe(false) - expect(isAsyncFunction(new DataView(new ArrayBuffer()))).toBe(false) + expect(isAsyncFunction(new ArrayBuffer(16))).toBe(false) + expect(isAsyncFunction(new SharedArrayBuffer(16))).toBe(false) + expect(isAsyncFunction(new DataView(new ArrayBuffer(16)))).toBe(false) expect(isAsyncFunction({})).toBe(false) expect(isAsyncFunction({ a: 1 })).toBe(false) expect(isAsyncFunction(() => {})).toBe(false) @@ -178,6 +181,21 @@ describe('Utils test suite', () => { expect(isAsyncFunction(async () => {})).toBe(true) expect(isAsyncFunction(async function () {})).toBe(true) expect(isAsyncFunction(async function named () {})).toBe(true) + class TestClass { + testSync () {} + async testAsync () {} + testArrowSync = () => {} + testArrowAsync = async () => {} + static testStaticSync () {} + static async testStaticAsync () {} + } + const testClass = new TestClass() + expect(isAsyncFunction(testClass.testSync)).toBe(false) + expect(isAsyncFunction(testClass.testAsync)).toBe(true) + expect(isAsyncFunction(testClass.testArrowSync)).toBe(false) + expect(isAsyncFunction(testClass.testArrowAsync)).toBe(true) + expect(isAsyncFunction(TestClass.testStaticSync)).toBe(false) + expect(isAsyncFunction(TestClass.testStaticAsync)).toBe(true) }) it('Verify secureRandom() behavior', () => { @@ -188,20 +206,20 @@ describe('Utils test suite', () => { }) it('Verify min() behavior', () => { - expect(min()).toBe(Infinity) + expect(min()).toBe(Number.POSITIVE_INFINITY) expect(min(1, 2)).toBe(1) expect(min(2, 1)).toBe(1) expect(min(1, 1)).toBe(1) }) it('Verify max() behavior', () => { - expect(max()).toBe(-Infinity) + expect(max()).toBe(Number.NEGATIVE_INFINITY) expect(max(1, 2)).toBe(2) expect(max(2, 1)).toBe(2) expect(max(1, 1)).toBe(1) }) - // it('Verify once()', () => { + // it('Verify once() behavior', () => { // let called = 0 // const fn = () => ++called // const onceFn = once(fn, this)