build(deps-dev): apply updates
[poolifier.git] / tests / pools / abstract-pool.test.mjs
index fc346a642acef84a82404c19142fdf18e2a886e3..7661bf6700abb090d43358136dad1624f4c55fe5 100644 (file)
@@ -1708,21 +1708,40 @@ describe('Abstract pool test suite', () => {
     await pool.destroy()
   })
 
-  it('Verify mapExecute() is working', async () => {
+  it('Verify that mapExecute() is working', async () => {
     const pool = new DynamicThreadPool(
       Math.floor(numberOfWorkers / 2),
       numberOfWorkers,
       './tests/worker-files/thread/testMultipleTaskFunctionsWorker.mjs'
     )
-    const results = await pool.mapExecute([{ n: 10 }, { n: 20 }, { n: 30 }, { n: 40 }], 'factorial')
+    expect(() => pool.mapExecute()).toThrow(
+      new TypeError('data argument must be a defined iterable')
+    )
+    expect(() => pool.mapExecute(0)).toThrow(
+      new TypeError('data argument must be an iterable')
+    )
+    let results = await pool.mapExecute([{}, {}, {}, {}])
+    expect(results).toStrictEqual([{ ok: 1 }, { ok: 1 }, { ok: 1 }, { ok: 1 }])
+    expect(pool.info.executingTasks).toBe(0)
+    expect(pool.info.executedTasks).toBe(4)
+    results = await pool.mapExecute(
+      [{ n: 10 }, { n: 20 }, { n: 30 }, { n: 40 }],
+      'factorial'
+    )
     expect(results).toStrictEqual([
-      3628800,
-      2432902008176640000,
-      2.6525285981219103e+32,
-      8.159152832478977e+47,
+      3628800, 2432902008176640000, 2.6525285981219103e32, 8.159152832478977e47,
     ])
     expect(pool.info.executingTasks).toBe(0)
-    expect(pool.info.executedTasks).toBe(4)
+    expect(pool.info.executedTasks).toBe(8)
+    results = await pool.mapExecute(
+      new Set([{ n: 10 }, { n: 20 }, { n: 30 }, { n: 40 }]),
+      'factorial'
+    )
+    expect(results).toStrictEqual([
+      3628800, 2432902008176640000, 2.6525285981219103e32, 8.159152832478977e47,
+    ])
+    expect(pool.info.executingTasks).toBe(0)
+    expect(pool.info.executedTasks).toBe(12)
     await pool.destroy()
   })