refactor: code cleanups
[poolifier.git] / tests / worker / thread-worker.test.js
index 240534a75f94757293dd740ec20de8ef2e900cbf..072617d35a4e47d3e1c7c0912b754e2afe4bb0cc 100644 (file)
@@ -1,9 +1,34 @@
-const expect = require('expect')
+const { expect } = require('expect')
 const { ThreadWorker } = require('../../lib')
 
 describe('Thread worker test suite', () => {
+  let numberOfMessagesPosted = 0
+  const postMessage = () => {
+    ++numberOfMessagesPosted
+  }
+  class SpyWorker extends ThreadWorker {
+    constructor (fn) {
+      super(fn)
+      this.port = { postMessage }
+    }
+  }
+
   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 invokes the postMessage() method on port property', () => {
+    const worker = new SpyWorker(() => {})
+    worker.sendToMainWorker({ ok: 1 })
+    expect(numberOfMessagesPosted).toBe(1)
   })
 })