Merge pull request #65 from pioardi/dependabot/npm_and_yarn/standard-16.0.2
[poolifier.git] / tests / dynamic.test.js
index e23fd9af9fbd32ff210ef178f4cf298f7863af7c..15195012be80f25db7750f80de1fbebdf5614765 100644 (file)
@@ -32,6 +32,21 @@ describe('Dynamic thread pool test suite ', () => {
     expect(closedThreads).toBe(max - min)
   })
 
+  it('Verify scale thread up and down is working', async () => {
+    expect(pool.workers.length).toBe(min)
+    for (let i = 0; i < max * 10; i++) {
+      pool.execute({ test: 'test' })
+    }
+    expect(pool.workers.length).toBe(max)
+    await new Promise(resolve => setTimeout(resolve, 1000))
+    expect(pool.workers.length).toBe(min)
+    for (let i = 0; i < max * 10; i++) {
+      pool.execute({ test: 'test' })
+    }
+    expect(pool.workers.length).toBe(max)
+    await new Promise(resolve => setTimeout(resolve, 1000))
+    expect(pool.workers.length).toBe(min)
+  })
   it('Shutdown test', async () => {
     let closedThreads = 0
     pool.workers.forEach(w => {
@@ -39,8 +54,7 @@ describe('Dynamic thread pool test suite ', () => {
         closedThreads++
       })
     })
-    pool.destroy()
-    await new Promise(resolve => setTimeout(resolve, 2000))
+    await pool.destroy()
     expect(closedThreads).toBe(min)
   })