refactor: use object destructuration at handling task execution response
[poolifier.git] / tests / worker / thread-worker.test.js
index dfe49655f10c7380604dd2edcfad5d30e030bf98..072617d35a4e47d3e1c7c0912b754e2afe4bb0cc 100644 (file)
@@ -1,24 +1,32 @@
-const expect = require('expect')
+const { expect } = require('expect')
 const { ThreadWorker } = require('../../lib')
 
-let numberOfMessagesPosted = 0
-const postMessage = function (message) {
-  numberOfMessagesPosted++
-  console.log(message)
-}
-class SpyWorker extends ThreadWorker {
-  getMainWorker () {
-    return { postMessage: postMessage }
+describe('Thread worker test suite', () => {
+  let numberOfMessagesPosted = 0
+  const postMessage = () => {
+    ++numberOfMessagesPosted
+  }
+  class SpyWorker extends ThreadWorker {
+    constructor (fn) {
+      super(fn)
+      this.port = { postMessage }
+    }
   }
-}
 
-describe('Thread worker test suite', () => {
   it('Verify worker has default maxInactiveTime', () => {
     const worker = new ThreadWorker(() => {})
-    expect(worker.maxInactiveTime).toEqual(60_000)
+    expect(worker.opts.maxInactiveTime).toStrictEqual(60000)
+  })
+
+  it('Verify that handleError() method is working properly', () => {
+    const error = new Error('Error as an error')
+    const worker = new ThreadWorker(() => {})
+    expect(worker.handleError(error)).toStrictEqual(error)
+    const errorMessage = 'Error as a string'
+    expect(worker.handleError(errorMessage)).toStrictEqual(errorMessage)
   })
 
-  it('Verify worker invoke the getMainWorker and postMessage methods', () => {
+  it('Verify worker invokes the postMessage() method on port property', () => {
     const worker = new SpyWorker(() => {})
     worker.sendToMainWorker({ ok: 1 })
     expect(numberOfMessagesPosted).toBe(1)