Commit | Line | Data |
---|---|---|
0220f124 JB |
1 | const { expect } = require('expect') |
2 | const sinon = require('sinon') | |
3 | const { FixedThreadPool } = require('../../../lib/index') | |
4 | const { | |
5 | WeightedRoundRobinWorkerChoiceStrategy | |
6 | } = require('../../../lib/pools/selection-strategies/weighted-round-robin-worker-choice-strategy') | |
f931db5c | 7 | const TestUtils = require('../../test-utils') |
0220f124 JB |
8 | |
9 | describe('Weighted round robin strategy worker choice strategy test suite', () => { | |
10 | // const min = 1 | |
11 | const max = 3 | |
12 | let pool | |
13 | ||
14 | before(() => { | |
15 | pool = new FixedThreadPool(max, './tests/worker-files/thread/testWorker.js') | |
16 | }) | |
17 | ||
18 | afterEach(() => { | |
19 | sinon.restore() | |
20 | }) | |
21 | ||
22 | after(async () => { | |
23 | await pool.destroy() | |
24 | }) | |
25 | ||
6cdd998c | 26 | it('Verify that reset() resets internals', () => { |
0220f124 | 27 | const strategy = new WeightedRoundRobinWorkerChoiceStrategy(pool) |
9bc18a6d JB |
28 | strategy.previousWorkerIndex = TestUtils.generateRandomInteger() |
29 | strategy.currentWorkerIndex = TestUtils.generateRandomInteger() | |
0220f124 JB |
30 | const workersTaskRunTimeClearStub = sinon |
31 | .stub(strategy.workersTaskRunTime, 'clear') | |
32 | .returns() | |
33 | const initWorkersTaskRunTimeStub = sinon | |
34 | .stub(strategy, 'initWorkersTaskRunTime') | |
35 | .returns() | |
36 | const resetResult = strategy.reset() | |
37 | expect(resetResult).toBe(true) | |
38 | expect(strategy.previousWorkerIndex).toBe(0) | |
39 | expect(strategy.currentWorkerIndex).toBe(0) | |
0220f124 JB |
40 | expect(workersTaskRunTimeClearStub.calledOnce).toBe(true) |
41 | expect(initWorkersTaskRunTimeStub.calledOnce).toBe(true) | |
42 | }) | |
43 | }) |