X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Futils.test.mjs;h=bf6d3f08a6480be8e1470f242321300e184e66a8;hb=dca3cdd3fe9277840f5a37e4ecc900718f7c1c52;hp=26056bd2c7a6a4133b6e678a96826190ba174b05;hpb=b91134ce1c0d673b62091e945a1271d08749af55;p=poolifier.git diff --git a/tests/utils.test.mjs b/tests/utils.test.mjs index 26056bd2..bf6d3f08 100644 --- a/tests/utils.test.mjs +++ b/tests/utils.test.mjs @@ -1,18 +1,15 @@ -import { Worker } from 'node:worker_threads' -import cluster from 'node:cluster' -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_MEASUREMENT_STATISTICS_REQUIREMENTS, - DEFAULT_TASK_NAME, - DEFAULT_WORKER_CHOICE_STRATEGY_OPTIONS, - EMPTY_FUNCTION, availableParallelism, average, + DEFAULT_TASK_NAME, + EMPTY_FUNCTION, exponentialDelay, - getWorkerId, - getWorkerType, isAsyncFunction, isKillBehavior, isPlainObject, @@ -23,8 +20,7 @@ import { round, secureRandom, sleep -} from '../lib/utils.js' -import { KillBehaviors, WorkerTypes } from '../lib/index.js' +} from '../lib/utils.cjs' describe('Utils test suite', () => { it('Verify DEFAULT_TASK_NAME value', () => { @@ -35,23 +31,6 @@ describe('Utils test suite', () => { expect(EMPTY_FUNCTION).toStrictEqual(expect.any(Function)) }) - it('Verify DEFAULT_WORKER_CHOICE_STRATEGY_OPTIONS values', () => { - expect(DEFAULT_WORKER_CHOICE_STRATEGY_OPTIONS).toStrictEqual({ - retries: 6, - runTime: { median: false }, - waitTime: { median: false }, - elu: { median: false } - }) - }) - - it('Verify DEFAULT_MEASUREMENT_STATISTICS_REQUIREMENTS values', () => { - expect(DEFAULT_MEASUREMENT_STATISTICS_REQUIREMENTS).toStrictEqual({ - aggregate: false, - average: false, - median: false - }) - }) - it('Verify availableParallelism() behavior', () => { const parallelism = availableParallelism() expect(typeof parallelism === 'number').toBe(true) @@ -65,22 +44,6 @@ describe('Utils test suite', () => { expect(parallelism).toBe(expectedParallelism) }) - it('Verify getWorkerType() behavior', () => { - expect( - getWorkerType(new Worker('./tests/worker-files/thread/testWorker.mjs')) - ).toBe(WorkerTypes.thread) - expect(getWorkerType(cluster.fork())).toBe(WorkerTypes.cluster) - }) - - it('Verify getWorkerId() behavior', () => { - const threadWorker = new Worker( - './tests/worker-files/thread/testWorker.mjs' - ) - const clusterWorker = cluster.fork() - expect(getWorkerId(threadWorker)).toBe(threadWorker.threadId) - expect(getWorkerId(clusterWorker)).toBe(clusterWorker.id) - }) - it('Verify sleep() behavior', async () => { const start = performance.now() const sleepMs = 1000 @@ -186,7 +149,8 @@ describe('Utils test suite', () => { expect(isAsyncFunction('')).toBe(false) expect(isAsyncFunction([])).toBe(false) expect(isAsyncFunction(new Date())).toBe(false) - expect(isAsyncFunction(new RegExp())).toBe(false) + // eslint-disable-next-line prefer-regex-literals + expect(isAsyncFunction(new RegExp('[a-z]', 'i'))).toBe(false) expect(isAsyncFunction(new Error())).toBe(false) expect(isAsyncFunction(new Map())).toBe(false) expect(isAsyncFunction(new Set())).toBe(false) @@ -206,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) @@ -217,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', () => { @@ -240,7 +219,7 @@ describe('Utils test suite', () => { expect(max(1, 1)).toBe(1) }) - // it('Verify once()', () => { + // it('Verify once() behavior', () => { // let called = 0 // const fn = () => ++called // const onceFn = once(fn, this)