1+ import type * as d from '../../../declarations' ;
12import { getNextWorker } from '../node-worker-controller' ;
23import { TestWorkerMain } from './test-worker-main' ;
34
45describe ( '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