Add test cases and fixed some sonar code smells
[poolifier.git] / tests / pools / abstract / abstract-pool.test.js
CommitLineData
3ec964d6 1const expect = require('expect')
2const { FixedThreadPool } = require('../../../lib/index')
3const expectedError = new Error('Worker could not be found in tasks map')
4
5class StubPoolWithTasksMapClear extends FixedThreadPool {
6 removeAllWorker () {
7 this.tasks.clear()
8 }
9}
10
11class StubPoolWithIsMainMethod extends FixedThreadPool {
12 isMain () {
13 return false
14 }
15}
16
17describe('Abstract pool test suite ', () => {
18 it('Simulate worker not found during increaseWorkersTask', () => {
19 const pool = new StubPoolWithTasksMapClear(
20 1,
21 './tests/worker/cluster/testWorker.js',
22 {
23 errorHandler: e => console.error(e)
24 }
25 )
26 // simulate worker not found.
27 pool.removeAllWorker()
28 expect(() => pool.increaseWorkersTask()).toThrowError(expectedError)
29 })
30
31 it('Simulate worker not found during decreaseWorkersTasks', () => {
32 const pool = new StubPoolWithTasksMapClear(
33 1,
34 './tests/worker/cluster/testWorker.js',
35 {
36 errorHandler: e => console.error(e)
37 }
38 )
39 // simulate worker not found.
40 pool.removeAllWorker()
41 expect(() => pool.decreaseWorkersTasks()).toThrowError(expectedError)
42 })
43
44 it('Simulate pool creation from a non main thread/process', () => {
45 expect(() => {
46 const pool = new StubPoolWithIsMainMethod(
47 1,
48 './tests/worker/cluster/testWorker.js',
49 {
50 errorHandler: e => console.error(e)
51 }
52 )
53 }).toThrowError()
54 })
55})