refactor: cleanup eslint configuration
[poolifier.git] / tests / pools / selection-strategies / weighted-round-robin-worker-choice-strategy.test.mjs
CommitLineData
c7ed5d3b 1import { randomInt } from 'node:crypto'
ded253e2 2
a074ffee 3import { expect } from 'expect'
ded253e2 4
d35e5717 5import { FixedThreadPool } from '../../../lib/index.cjs'
b1314cf6 6import { InterleavedWeightedRoundRobinWorkerChoiceStrategy } from '../../../lib/pools/selection-strategies/interleaved-weighted-round-robin-worker-choice-strategy.cjs'
d35e5717 7import { WeightedRoundRobinWorkerChoiceStrategy } from '../../../lib/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.cjs'
0220f124
JB
8
9describe('Weighted round robin strategy worker choice strategy test suite', () => {
10 // const min = 1
11 const max = 3
12 let pool
13
14 before(() => {
b2fd3f4a
JB
15 pool = new FixedThreadPool(
16 max,
17 './tests/worker-files/thread/testWorker.mjs'
18 )
0220f124
JB
19 })
20
0220f124
JB
21 after(async () => {
22 await pool.destroy()
23 })
24
b1314cf6 25 it('Verify that WRR reset() resets internals', () => {
0220f124 26 const strategy = new WeightedRoundRobinWorkerChoiceStrategy(pool)
07a85ff1
JB
27 strategy.nextWorkerNodeKey = randomInt(1, 281474976710656)
28 strategy.previousWorkerNodeKey = randomInt(1, 281474976710656)
29 strategy.workerNodeVirtualTaskRunTime = randomInt(1, 281474976710656)
a1fef95a
JB
30 expect(strategy.nextWorkerNodeKey).toBeGreaterThan(0)
31 expect(strategy.previousWorkerNodeKey).toBeGreaterThan(0)
32 expect(strategy.workerNodeVirtualTaskRunTime).toBeGreaterThan(0)
516dcb0d 33 expect(strategy.reset()).toBe(true)
9b106837 34 expect(strategy.nextWorkerNodeKey).toBe(0)
54f4e726 35 expect(strategy.previousWorkerNodeKey).toBe(0)
f3a91bac 36 expect(strategy.workerNodeVirtualTaskRunTime).toBe(0)
0220f124 37 })
b1314cf6
JB
38
39 it('Verify that IWRR reset() resets internals', () => {
40 const strategy = new InterleavedWeightedRoundRobinWorkerChoiceStrategy(pool)
41 strategy.nextWorkerNodeKey = randomInt(1, 281474976710656)
42 strategy.previousWorkerNodeKey = randomInt(1, 281474976710656)
43 strategy.roundId = randomInt(1, 281474976710656)
44 strategy.workerNodeId = randomInt(1, 281474976710656)
45 strategy.workerNodeVirtualTaskRunTime = randomInt(1, 281474976710656)
46 expect(strategy.nextWorkerNodeKey).toBeGreaterThan(0)
47 expect(strategy.previousWorkerNodeKey).toBeGreaterThan(0)
48 expect(strategy.roundId).toBeGreaterThan(0)
49 expect(strategy.workerNodeId).toBeGreaterThan(0)
50 expect(strategy.workerNodeVirtualTaskRunTime).toBeGreaterThan(0)
51 expect(strategy.reset()).toBe(true)
52 expect(strategy.nextWorkerNodeKey).toBe(0)
53 expect(strategy.previousWorkerNodeKey).toBe(0)
54 expect(strategy.roundId).toBe(0)
55 expect(strategy.workerNodeId).toBe(0)
56 expect(strategy.workerNodeVirtualTaskRunTime).toBe(0)
57 })
0220f124 58})