@@ -44,6 +44,7 @@ describe("worker/runner/test-runner", () => {
4444 const publicAPI = _ . defaults ( prototype , {
4545 $ : sandbox . stub ( ) . named ( "$" ) . resolves ( mkElement_ ( ) ) ,
4646 execute : sandbox . stub ( ) . named ( "execute" ) . resolves ( { x : 0 , y : 0 } ) ,
47+ assertView : sandbox . stub ( ) . named ( "assertView" ) . resolves ( ) ,
4748 } ) ;
4849 config = _ . defaults ( config , { resetCursor : true } ) ;
4950
@@ -52,8 +53,14 @@ describe("worker/runner/test-runner", () => {
5253 publicAPI,
5354 config,
5455 meta : { } ,
55- state : { } ,
56- markAsBroken : sandbox . stub ( ) ,
56+ state : {
57+ isBroken : false ,
58+ } ,
59+ markAsBroken : sandbox . stub ( ) . callsFake ( ( ) => {
60+ this . state . isBroken = true ;
61+
62+ return sandbox . stub ( ) ;
63+ } ) ,
5764 } ;
5865 } ;
5966
@@ -553,16 +560,41 @@ describe("worker/runner/test-runner", () => {
553560 } ) ;
554561
555562 describe ( 'in "afterEach" hook' , ( ) => {
556- it ( "should not mark even if session is broken" , async ( ) => {
563+ it ( "should mark if session is broken" , async ( ) => {
557564 const config = makeConfigStub ( { system : { patternsOnReject : [ "FOO_BAR" ] } } ) ;
558- const runner = mkRunner_ ( { config } ) ;
565+ const test = mkTest_ ( { fn : sinon . stub ( ) . resolves ( ) } ) ;
566+ const runner = mkRunner_ ( { config, test } ) ;
559567 const browser = mkBrowser_ ( ) ;
560568 BrowserAgent . prototype . getBrowser . resolves ( browser ) ;
569+ HookRunner . prototype . hasAfterEachHooks . returns ( true ) ;
561570 HookRunner . prototype . runAfterEachHooks . rejects ( new Error ( "FOO_BAR" ) ) ;
562571
563572 await run_ ( { runner } ) . catch ( ( ) => { } ) ;
564573
565- assert . notCalled ( browser . markAsBroken ) ;
574+ assert . calledOnce ( browser . markAsBroken ) ;
575+ } ) ;
576+ } ) ;
577+
578+ describe ( "with assertView errors" , ( ) => {
579+ it ( "should mark if test fails with screenshot error" , async ( ) => {
580+ const config = makeConfigStub ( { system : { patternsOnReject : [ "image comparison failed" ] } } ) ;
581+ const runner = mkRunner_ ( { config } ) ;
582+ const browser = mkBrowser_ ( ) ;
583+ BrowserAgent . prototype . getBrowser . resolves ( browser ) ;
584+
585+ const assertViewResults = AssertViewResults . create ( [ new Error ( "image error" ) ] ) ;
586+
587+ ExecutionThread . create . callsFake ( ( { hermioneCtx } ) => {
588+ ExecutionThread . prototype . run . callsFake ( ( ) => {
589+ hermioneCtx . assertViewResults = assertViewResults ;
590+ } ) ;
591+
592+ return Object . create ( ExecutionThread . prototype ) ;
593+ } ) ;
594+
595+ await run_ ( { runner } ) . catch ( ( ) => { } ) ;
596+
597+ assert . calledOnce ( browser . markAsBroken ) ;
566598 } ) ;
567599 } ) ;
568600 } ) ;
0 commit comments