1
1
'use strict' ;
2
2
3
+ const Promise = require ( 'bluebird' ) ;
4
+ const _ = require ( 'lodash' ) ;
5
+
6
+ const { BrowserAgent} = require ( 'gemini-core' ) ;
3
7
const Events = require ( 'lib/constants/events' ) ;
4
8
const InsistentSuiteRunner = require ( 'lib/runner/suite-runner/insistent-suite-runner' ) ;
5
9
const RegularSuiteRunner = require ( 'lib/runner/suite-runner/regular-suite-runner' ) ;
6
10
const CancelledError = require ( 'lib/errors/cancelled-error' ) ;
7
11
const NoRefImageError = require ( 'lib/errors/no-ref-image-error' ) ;
8
- const makeStateStub = require ( '../../../util' ) . makeStateStub ;
9
- const makeSuiteStub = require ( '../../../util' ) . makeSuiteStub ;
10
- const makeSuiteTree = require ( '../../../util' ) . makeSuiteTree ;
11
- const BrowserAgent = require ( 'gemini-core' ) . BrowserAgent ;
12
- const Promise = require ( 'bluebird' ) ;
13
- const _ = require ( 'lodash' ) ;
12
+ const { makeStateStub, makeSuiteStub, makeSuiteTree} = require ( '../../../util' ) ;
14
13
15
14
describe ( 'runner/suite-runner/insistent-suite-runner' , ( ) => {
16
15
const sandbox = sinon . sandbox . create ( ) ;
@@ -453,17 +452,16 @@ describe('runner/suite-runner/insistent-suite-runner', () => {
453
452
} ) ;
454
453
455
454
it ( 'should retry only failed states' , ( ) => {
456
- const tree = makeSuiteTree ( { suite : [ '1st' , '2nd' , '3rd' ] } , { browsers : [ 'bro' ] } ) ;
455
+ sandbox . spy ( RegularSuiteRunner , 'create' ) ;
457
456
457
+ const suite = makeSuiteTree ( { suite : [ '1st' , '2nd' , '3rd' ] } , { browsers : [ 'bro' , 'firefox' ] } ) . suite ;
458
458
stubWrappedRun_ ( ( runner ) => {
459
459
runner . emit ( Events . TEST_RESULT , { state : { name : '1st' } , equal : true } ) ;
460
460
runner . emit ( Events . ERROR , { state : { name : '2nd' } } ) ;
461
461
runner . emit ( Events . TEST_RESULT , { state : { name : '3rd' } , equal : false } ) ;
462
462
} ) ;
463
463
464
- sandbox . spy ( RegularSuiteRunner , 'create' ) ;
465
-
466
- return mkRunnerWithRetries_ ( { suite : tree . suite , browserAgent : mkBrowserAgentStub_ ( 'bro' ) } )
464
+ return mkRunnerWithRetries_ ( { suite, browserAgent : mkBrowserAgentStub_ ( 'bro' ) } )
467
465
. run ( )
468
466
. then ( ( ) => {
469
467
const retriedSuite = RegularSuiteRunner . create . secondCall . args [ 0 ] ;
@@ -472,6 +470,28 @@ describe('runner/suite-runner/insistent-suite-runner', () => {
472
470
assert . deepEqual ( retriedSuite . states [ 2 ] . browsers , [ 'bro' ] ) ;
473
471
} ) ;
474
472
} ) ;
473
+
474
+ it ( 'should not affect child states' , ( ) => {
475
+ sandbox . spy ( RegularSuiteRunner , 'create' ) ;
476
+
477
+ const suite = makeSuiteTree ( {
478
+ suite : {
479
+ child : [ 'childState' ]
480
+ }
481
+ } , { browsers : [ 'bro' , 'firefox' ] } ) . suite ;
482
+ makeStateStub ( suite , { name : 'rootState' } ) ;
483
+
484
+ stubWrappedRun_ ( ( runner ) => {
485
+ runner . emit ( Events . TEST_RESULT , { state : { name : 'rootState' } , equal : false } ) ;
486
+ } ) ;
487
+
488
+ return mkRunnerWithRetries_ ( { suite, browserAgent : mkBrowserAgentStub_ ( 'bro' ) } )
489
+ . run ( )
490
+ . then ( ( ) => {
491
+ const childState = suite . children [ 0 ] . states [ 0 ] ;
492
+ assert . deepEqual ( childState . browsers , [ 'bro' , 'firefox' ] ) ;
493
+ } ) ;
494
+ } ) ;
475
495
} ) ;
476
496
477
497
describe ( 'cancel' , ( ) => {
0 commit comments