+ const parallelism = availableParallelism()
+ expect(typeof parallelism === 'number').toBe(true)
+ expect(Number.isSafeInteger(parallelism)).toBe(true)
+ let expectedParallelism = 1
+ try {
+ expectedParallelism = os.availableParallelism()
+ } catch {
+ expectedParallelism = os.cpus().length
+ }
+ expect(parallelism).toBe(expectedParallelism)
+ })
+
+ it('Verify getWorkerType() behavior', () => {
+ expect(
+ getWorkerType(new Worker('./tests/worker-files/thread/testWorker.js'))
+ ).toBe(WorkerTypes.thread)
+ expect(getWorkerType(cluster.fork())).toBe(WorkerTypes.cluster)
+ })
+
+ it('Verify getWorkerId() behavior', () => {
+ const threadWorker = new Worker('./tests/worker-files/thread/testWorker.js')
+ 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()
+ await sleep(1000)
+ const elapsed = performance.now() - start
+ expect(elapsed).toBeGreaterThanOrEqual(999)
+ })
+
+ it('Verify exponentialDelay() behavior', () => {
+ const delay = exponentialDelay(randomInt(1000))
+ expect(typeof delay === 'number').toBe(true)
+ expect(delay).toBeGreaterThanOrEqual(Number.MIN_VALUE)
+ expect(delay).toBeLessThanOrEqual(Number.MAX_VALUE)