test: use sinon stub to simplify code
[poolifier.git] / tests / worker / cluster-worker.test.mjs
CommitLineData
a074ffee 1import { expect } from 'expect'
bb3d0b23 2import { restore, stub } from 'sinon'
a074ffee 3import { ClusterWorker } from '../../lib/index.js'
fd027a65
S
4
5describe('Cluster worker test suite', () => {
bb3d0b23 6 const sendStub = stub().returns()
f4fb3543
JB
7 class SpyWorker extends ClusterWorker {
8 getMainWorker () {
bb3d0b23 9 return { send: sendStub }
f4fb3543
JB
10 }
11 }
12
bb3d0b23
JB
13 afterEach(() => {
14 restore()
15 })
16
18ecc6c5
JB
17 it('Verify that handleError() method is working properly', () => {
18 const error = new Error('Error as an error')
19 const worker = new ClusterWorker(() => {})
20 expect(worker.handleError(error)).not.toBeInstanceOf(Error)
21 expect(worker.handleError(error)).toStrictEqual(error.message)
22 const errorMessage = 'Error as a string'
23 expect(worker.handleError(errorMessage)).toStrictEqual(errorMessage)
24 })
25
2431bdb4 26 it('Verify worker invokes the getMainWorker() and send() methods', () => {
f4fb3543
JB
27 const worker = new SpyWorker(() => {})
28 worker.sendToMainWorker({ ok: 1 })
bb3d0b23 29 expect(worker.getMainWorker().send.calledOnce).toBe(true)
f4fb3543 30 })
fd027a65 31})