feat: add worker kill handler success or failure reporting
[poolifier.git] / tests / worker / abstract-worker.test.js
index 6582961febd4fe699dc1b1a4977604f5023edf68..9efacab5e3f611d7a9b3f7cb9a75430954c3b3f4 100644 (file)
@@ -132,18 +132,24 @@ describe('Abstract worker test suite', () => {
       killHandler: sinon.stub().returns()
     })
     worker.isMain = false
+    worker.getMainWorker = sinon.stub().returns({
+      id: 1,
+      send: sinon.stub().returns()
+    })
     worker.handleKillMessage()
+    expect(worker.getMainWorker().send.calledOnce).toBe(true)
     expect(worker.opts.killHandler.calledOnce).toBe(true)
   })
 
-  // it('Verify that async kill handler is called when worker is killed', () => {
-  //   const worker = new ClusterWorker(() => {}, {
-  //     killHandler: sinon.stub().resolves()
-  //   })
-  //   worker.isMain = false
-  //   worker.handleKillMessage()
-  //   expect(worker.opts.killHandler.calledOnce).toBe(true)
-  // })
+  it('Verify that async kill handler is called when worker is killed', () => {
+    const killHandlerStub = sinon.stub().returns()
+    const worker = new ClusterWorker(() => {}, {
+      killHandler: async () => Promise.resolve(killHandlerStub())
+    })
+    worker.isMain = false
+    worker.handleKillMessage()
+    expect(killHandlerStub.calledOnce).toBe(true)
+  })
 
   it('Verify that handleError() method works properly', () => {
     const error = new Error('Error as an error')