build(deps-dev): apply updates
[poolifier.git] / tests / pools / abstract-pool.test.mjs
index d202d65fef7dbda6ebb03f17c818d2e21bcae153..ecb1c5670e095a4f89678f8a511a99721084d3ea 100644 (file)
@@ -1714,7 +1714,18 @@ describe('Abstract pool test suite', () => {
       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,
@@ -1722,7 +1733,16 @@ describe('Abstract pool test suite', () => {
       8.159152832478977e+47,
     ])
     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.6525285981219103e+32,
+      8.159152832478977e+47,
+    ])
+    expect(pool.info.executingTasks).toBe(0)
+    expect(pool.info.executedTasks).toBe(12)
     await pool.destroy()
   })