@@ -12,6 +12,20 @@ import TestScheduler from '../test_scheduler';
1212import SummaryReporter from '../reporters/summary_reporter' ;
1313
1414jest . mock ( '../reporters/default_reporter' ) ;
15+ const mockSerialRunner = {
16+ isSerial : true ,
17+ runTests : jest . fn ( ) ,
18+ } ;
19+ jest . mock ( 'jest-runner-serial' , ( ) => jest . fn ( ( ) => mockSerialRunner ) , {
20+ virtual : true ,
21+ } ) ;
22+
23+ const mockParallelRunner = {
24+ runTests : jest . fn ( ) ,
25+ } ;
26+ jest . mock ( 'jest-runner-parallel' , ( ) => jest . fn ( ( ) => mockParallelRunner ) , {
27+ virtual : true ,
28+ } ) ;
1529
1630test ( '.addReporter() .removeReporter()' , ( ) => {
1731 const scheduler = new TestScheduler ( { } , { } ) ;
@@ -21,3 +35,45 @@ test('.addReporter() .removeReporter()', () => {
2135 scheduler . removeReporter ( SummaryReporter ) ;
2236 expect ( scheduler . _dispatcher . _reporters ) . not . toContain ( reporter ) ;
2337} ) ;
38+
39+ test ( 'schedule tests run in parallel per default' , async ( ) => {
40+ const scheduler = new TestScheduler ( { } , { } ) ;
41+ const test = {
42+ context : {
43+ config : {
44+ runner : 'jest-runner-parallel' ,
45+ } ,
46+ hasteFS : {
47+ matchFiles : jest . fn ( ( ) => [ ] ) ,
48+ } ,
49+ } ,
50+ path : './test/path.js' ,
51+ } ;
52+ const tests = [ test , test ] ;
53+
54+ await scheduler . scheduleTests ( tests , { isInterrupted : jest . fn ( ) } ) ;
55+
56+ expect ( mockParallelRunner . runTests ) . toHaveBeenCalled ( ) ;
57+ expect ( mockParallelRunner . runTests . mock . calls [ 0 ] [ 5 ] . serial ) . toBeFalsy ( ) ;
58+ } ) ;
59+
60+ test ( 'schedule tests run in serial if the runner flags them' , async ( ) => {
61+ const scheduler = new TestScheduler ( { } , { } ) ;
62+ const test = {
63+ context : {
64+ config : {
65+ runner : 'jest-runner-serial' ,
66+ } ,
67+ hasteFS : {
68+ matchFiles : jest . fn ( ( ) => [ ] ) ,
69+ } ,
70+ } ,
71+ path : './test/path.js' ,
72+ } ;
73+
74+ const tests = [ test , test ] ;
75+ await scheduler . scheduleTests ( tests , { isInterrupted : jest . fn ( ) } ) ;
76+
77+ expect ( mockSerialRunner . runTests ) . toHaveBeenCalled ( ) ;
78+ expect ( mockSerialRunner . runTests . mock . calls [ 0 ] [ 5 ] . serial ) . toBeTruthy ( ) ;
79+ } ) ;
0 commit comments