refactor: move worker setup into worker node constructor
[poolifier.git] / tests / pools / thread / dynamic.test.mjs
index 0a608a01f2d9d478b9fc4a17c388bcb1ac89b4dd..f7329710bd3c90e2264bebed7ab7aa628c0bccae 100644 (file)
@@ -9,7 +9,7 @@ describe('Dynamic thread pool test suite', () => {
   const pool = new DynamicThreadPool(
     min,
     max,
-    './tests/worker-files/thread/testWorker.js',
+    './tests/worker-files/thread/testWorker.mjs',
     {
       errorHandler: e => console.error(e)
     }
@@ -37,10 +37,10 @@ describe('Dynamic thread pool test suite', () => {
     expect(poolBusy).toBe(1)
     const numberOfExitEvents = await waitWorkerEvents(pool, 'exit', max - min)
     expect(numberOfExitEvents).toBe(max - min)
+    expect(pool.workerNodes.length).toBe(min)
   })
 
   it('Verify scale thread up and down is working', async () => {
-    expect(pool.workerNodes.length).toBe(min)
     for (let i = 0; i < max * 2; i++) {
       pool.execute()
     }
@@ -67,14 +67,16 @@ describe('Dynamic thread pool test suite', () => {
     await pool.destroy()
     const numberOfExitEvents = await exitPromise
     expect(pool.started).toBe(false)
+    expect(pool.emitter.eventNames()).toStrictEqual([])
+    expect(pool.readyEventEmitted).toBe(false)
     expect(pool.workerNodes.length).toBe(0)
     expect(numberOfExitEvents).toBe(min)
     expect(poolDestroy).toBe(1)
   })
 
   it('Validation of inputs test', () => {
-    expect(() => new DynamicThreadPool(min)).toThrowError(
-      'Please specify a file with a worker implementation'
+    expect(() => new DynamicThreadPool(min)).toThrow(
+      'The worker file path must be specified'
     )
   })
 
@@ -82,7 +84,7 @@ describe('Dynamic thread pool test suite', () => {
     const pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     const res = await pool.execute()
     expect(res).toStrictEqual({ ok: 1 })
@@ -94,7 +96,7 @@ describe('Dynamic thread pool test suite', () => {
     const longRunningPool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/longRunningWorkerHardBehavior.js',
+      './tests/worker-files/thread/longRunningWorkerHardBehavior.mjs',
       {
         errorHandler: e => console.error(e),
         onlineHandler: () => console.info('long executing worker is online'),
@@ -121,7 +123,7 @@ describe('Dynamic thread pool test suite', () => {
     const longRunningPool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/longRunningWorkerSoftBehavior.js',
+      './tests/worker-files/thread/longRunningWorkerSoftBehavior.mjs',
       {
         errorHandler: e => console.error(e),
         onlineHandler: () => console.info('long executing worker is online'),
@@ -144,7 +146,7 @@ describe('Dynamic thread pool test suite', () => {
     const pool = new DynamicThreadPool(
       0,
       max,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     expect(pool).toBeInstanceOf(DynamicThreadPool)
     // We need to clean up the resources after our test