test: improve coverage
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Sat, 26 Aug 2023 19:30:11 +0000 (21:30 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Sat, 26 Aug 2023 19:30:11 +0000 (21:30 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
src/pools/abstract-pool.ts
tests/pools/abstract/abstract-pool.test.js

index afcf611eb65225449cf83c9440f5d1af81a24b6b..f862bbbecfff8c4068c7243e362035470f00b392 100644 (file)
@@ -265,10 +265,10 @@ export abstract class AbstractPool<
     }
     if (
       workerChoiceStrategyOptions.choiceRetries != null &&
-      workerChoiceStrategyOptions.choiceRetries <= 0
+      workerChoiceStrategyOptions.choiceRetries < 0
     ) {
       throw new RangeError(
-        `Invalid worker choice strategy options: choice retries '${workerChoiceStrategyOptions.choiceRetries}' must be greater than zero`
+        `Invalid worker choice strategy options: choice retries '${workerChoiceStrategyOptions.choiceRetries}' must be greater or equal than zero`
       )
     }
     if (
index 2fa224716461bc928c65cb2b7d07f48eb0cffd47..0890d564d9d673536507872c6ae5c965c592fc9f 100644 (file)
@@ -257,6 +257,38 @@ describe('Abstract pool test suite', () => {
     ).toThrowError(
       new Error("Invalid worker choice strategy 'invalidStrategy'")
     )
+    expect(
+      () =>
+        new FixedThreadPool(
+          numberOfWorkers,
+          './tests/worker-files/thread/testWorker.js',
+          {
+            workerChoiceStrategyOptions: {
+              choiceRetries: 'invalidChoiceRetries'
+            }
+          }
+        )
+    ).toThrowError(
+      new TypeError(
+        'Invalid worker choice strategy options: choice retries must be an integer'
+      )
+    )
+    expect(
+      () =>
+        new FixedThreadPool(
+          numberOfWorkers,
+          './tests/worker-files/thread/testWorker.js',
+          {
+            workerChoiceStrategyOptions: {
+              choiceRetries: -1
+            }
+          }
+        )
+    ).toThrowError(
+      new RangeError(
+        "Invalid worker choice strategy options: choice retries '-1' must be greater or equal than zero"
+      )
+    )
     expect(
       () =>
         new FixedThreadPool(
@@ -469,6 +501,22 @@ describe('Abstract pool test suite', () => {
         'Invalid worker choice strategy options: must be a plain object'
       )
     )
+    expect(() =>
+      pool.setWorkerChoiceStrategyOptions({
+        choiceRetries: 'invalidChoiceRetries'
+      })
+    ).toThrowError(
+      new TypeError(
+        'Invalid worker choice strategy options: choice retries must be an integer'
+      )
+    )
+    expect(() =>
+      pool.setWorkerChoiceStrategyOptions({ choiceRetries: -1 })
+    ).toThrowError(
+      new RangeError(
+        "Invalid worker choice strategy options: choice retries '-1' must be greater or equal than zero"
+      )
+    )
     expect(() =>
       pool.setWorkerChoiceStrategyOptions({ weights: {} })
     ).toThrowError(