test: use sinon stub to simplify code
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 2 Oct 2023 19:01:01 +0000 (21:01 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 2 Oct 2023 19:01:01 +0000 (21:01 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
tests/worker/cluster-worker.test.mjs
tests/worker/thread-worker.test.mjs

index f6a927aa054c90d3d994d38d4ae81119994f50d2..9349743c50835777ebc642c4d60cea5b0e9a3fee 100644 (file)
@@ -1,17 +1,19 @@
 import { expect } from 'expect'
+import { restore, stub } from 'sinon'
 import { ClusterWorker } from '../../lib/index.js'
 
 describe('Cluster worker test suite', () => {
-  let numberOfMessagesSent = 0
-  const send = () => {
-    ++numberOfMessagesSent
-  }
+  const sendStub = stub().returns()
   class SpyWorker extends ClusterWorker {
     getMainWorker () {
-      return { send }
+      return { send: sendStub }
     }
   }
 
+  afterEach(() => {
+    restore()
+  })
+
   it('Verify that handleError() method is working properly', () => {
     const error = new Error('Error as an error')
     const worker = new ClusterWorker(() => {})
@@ -24,6 +26,6 @@ describe('Cluster worker test suite', () => {
   it('Verify worker invokes the getMainWorker() and send() methods', () => {
     const worker = new SpyWorker(() => {})
     worker.sendToMainWorker({ ok: 1 })
-    expect(numberOfMessagesSent).toBe(1)
+    expect(worker.getMainWorker().send.calledOnce).toBe(true)
   })
 })
index 4be262a2259bec34203f0743b7f93b721ea2600f..6121995b690ce3549141d7960621ff9bd9015451 100644 (file)
@@ -1,18 +1,19 @@
 import { expect } from 'expect'
+import { restore, stub } from 'sinon'
 import { ThreadWorker } from '../../lib/index.js'
 
 describe('Thread worker test suite', () => {
-  let numberOfMessagesPosted = 0
-  const postMessage = () => {
-    ++numberOfMessagesPosted
-  }
   class SpyWorker extends ThreadWorker {
     constructor (fn) {
       super(fn)
-      this.port = { postMessage }
+      this.port = { postMessage: stub().returns() }
     }
   }
 
+  afterEach(() => {
+    restore()
+  })
+
   it('Verify that handleError() method is working properly', () => {
     const error = new Error('Error as an error')
     const worker = new ThreadWorker(() => {})
@@ -25,6 +26,6 @@ describe('Thread worker test suite', () => {
   it('Verify worker invokes the postMessage() method on port property', () => {
     const worker = new SpyWorker(() => {})
     worker.sendToMainWorker({ ok: 1 })
-    expect(numberOfMessagesPosted).toBe(1)
+    expect(worker.port.postMessage.calledOnce).toBe(true)
   })
 })