Update README.MD
[poolifier.git] / tests / dynamic.test.js
index 7b0865bb9f951c9c038f2c0c80f6bf6440e81656..3784c65110b5161cbd9bb9a25b8eff0c0047d9ec 100644 (file)
@@ -1,7 +1,7 @@
 const expect = require('expect')
 const DynamicThreadPool = require('../lib/dynamic')
 const min = 1
-const max = 10
+const max = 3
 const pool = new DynamicThreadPool(min, max,
   './tests/testWorker.js',
   { errorHandler: (e) => console.error(e), onlineHandler: () => console.log('worker is online') })
@@ -16,7 +16,9 @@ describe('Dynamic thread pool test suite ', () => {
   it('Verify that new workers are created when required, max size is not exceeded and that after a while new workers will die', async () => {
     const promises = []
     let closedThreads = 0
-    for (let i = 0; i < (max * 3); i++) {
+    let fullPool = 0
+    pool.emitter.on('FullPool', () => fullPool++)
+    for (let i = 0; i < (max * 2); i++) {
       promises.push(pool.execute({ test: 'test' }))
     }
     expect(pool.workers.length).toBe(max)
@@ -25,7 +27,8 @@ describe('Dynamic thread pool test suite ', () => {
         closedThreads++
       })
     })
-    await new Promise(resolve => setTimeout(resolve, 1000 * 2))
+    expect(fullPool > 1).toBeTruthy()
+    await new Promise(resolve => setTimeout(resolve, 2000))
     expect(closedThreads).toBe(max - min)
   })
 
@@ -37,7 +40,7 @@ describe('Dynamic thread pool test suite ', () => {
       })
     })
     pool.destroy()
-    await new Promise(resolve => setTimeout(resolve, 1000))
+    await new Promise(resolve => setTimeout(resolve, 2000))
     expect(closedThreads).toBe(min)
   })