Skip to content

Commit 4ab9083

Browse files
authored
chore(test): fix worker-manager snc violations (#4326)
this commit fixes two types of violations that were found in `worker-manager.spec.ts`: 1. check that the returned worker exists before running assertions on it 2. stubs for worker tasks cannot be `null` - instead provide a proper stub that conforms to the interface (only providing required fields)
1 parent a4feb66 commit 4ab9083

1 file changed

Lines changed: 37 additions & 24 deletions

File tree

Lines changed: 37 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
1+
import type * as d from '../../../declarations';
12
import { getNextWorker } from '../node-worker-controller';
23
import { TestWorkerMain } from './test-worker-main';
34

45
describe('getNextWorker', () => {
56
let workers: TestWorkerMain[];
67
const maxConcurrentWorkers = 4;
78

9+
const stubCompilerWorkerTask = (): d.CompilerWorkerTask => {
10+
return {
11+
resolve: () => {},
12+
reject: () => {},
13+
};
14+
};
15+
816
beforeEach(() => {
917
workers = [];
1018
for (let i = 0; i < maxConcurrentWorkers; i++) {
@@ -14,55 +22,60 @@ describe('getNextWorker', () => {
1422
});
1523

1624
it('get worker with fewest total tasks assigned when all the same number of tasks', () => {
17-
workers[0].tasks.set(1, null);
18-
workers[0].tasks.set(2, null);
19-
workers[0].tasks.set(3, null);
25+
workers[0].tasks.set(1, stubCompilerWorkerTask());
26+
workers[0].tasks.set(2, stubCompilerWorkerTask());
27+
workers[0].tasks.set(3, stubCompilerWorkerTask());
2028
workers[0].totalTasksAssigned = 50;
2129

22-
workers[1].tasks.set(1, null);
23-
workers[1].tasks.set(2, null);
24-
workers[1].tasks.set(3, null);
30+
workers[1].tasks.set(1, stubCompilerWorkerTask());
31+
workers[1].tasks.set(2, stubCompilerWorkerTask());
32+
workers[1].tasks.set(3, stubCompilerWorkerTask());
2533
workers[1].totalTasksAssigned = 40;
2634

2735
// this one is tied for fewest active tasks (3)
2836
// but has the fewest total tasks assigned (30)
29-
workers[2].tasks.set(1, null);
30-
workers[2].tasks.set(2, null);
31-
workers[2].tasks.set(3, null);
37+
workers[2].tasks.set(1, stubCompilerWorkerTask());
38+
workers[2].tasks.set(2, stubCompilerWorkerTask());
39+
workers[2].tasks.set(3, stubCompilerWorkerTask());
3240
workers[2].totalTasksAssigned = 30;
3341

34-
workers[3].tasks.set(1, null);
35-
workers[3].tasks.set(2, null);
36-
workers[3].tasks.set(3, null);
37-
workers[3].tasks.set(4, null);
38-
workers[3].tasks.set(5, null);
42+
workers[3].tasks.set(1, stubCompilerWorkerTask());
43+
workers[3].tasks.set(2, stubCompilerWorkerTask());
44+
workers[3].tasks.set(3, stubCompilerWorkerTask());
45+
workers[3].tasks.set(4, stubCompilerWorkerTask());
46+
workers[3].tasks.set(5, stubCompilerWorkerTask());
3947
workers[3].totalTasksAssigned = 20;
4048

4149
const w = getNextWorker(workers);
42-
expect(w.id).toBe(2);
50+
51+
expect(w).toBeDefined();
52+
expect(w!.id).toBe(2);
4353
});
4454

4555
it('get first worker when all the same', () => {
46-
workers[0].tasks.set(1, null);
56+
workers[0].tasks.set(1, stubCompilerWorkerTask());
4757
workers[0].totalTasksAssigned = 1;
48-
workers[1].tasks.set(1, null);
58+
workers[1].tasks.set(1, stubCompilerWorkerTask());
4959
workers[1].totalTasksAssigned = 1;
50-
workers[2].tasks.set(1, null);
60+
workers[2].tasks.set(1, stubCompilerWorkerTask());
5161
workers[2].totalTasksAssigned = 1;
52-
workers[3].tasks.set(1, null);
62+
workers[3].tasks.set(1, stubCompilerWorkerTask());
5363
workers[3].totalTasksAssigned = 1;
5464

5565
const w = getNextWorker(workers);
56-
expect(w.id).toBe(0);
66+
67+
expect(w).toBeDefined();
68+
expect(w!.id).toBe(0);
5769
});
5870

5971
it('forth task', () => {
60-
workers[0].tasks.set(1, null);
61-
workers[1].tasks.set(1, null);
62-
workers[2].tasks.set(1, null);
72+
workers[0].tasks.set(1, stubCompilerWorkerTask());
73+
workers[1].tasks.set(1, stubCompilerWorkerTask());
74+
workers[2].tasks.set(1, stubCompilerWorkerTask());
6375

6476
const w = getNextWorker(workers);
6577

66-
expect(w.id).toBe(3);
78+
expect(w).toBeDefined();
79+
expect(w!.id).toBe(3);
6780
});
6881
});

0 commit comments

Comments
 (0)