@@ -267,80 +267,71 @@ describe('cy.session', { retries: 0 }, () => {
267267 } )
268268
269269 describe ( 'create session with failed validation flow' , ( ) => {
270- // TODO: make this a before hook. Before hook is timing out under the hood
271- // and the failure is being captured in tests further down in run-mode.
272- // This is only visible in open-mode when setting a breakpoint in
273- // patchRunnableResetTimeout in src/cypress/mocha.ts
274- it ( 'fails validation' , function ( done ) {
270+ it ( 'fails validation and logs correctly' , function ( done ) {
275271 setupTestContext ( )
276272 cy . log ( 'create new session with validation to test against' )
277273
278274 cy . once ( 'fail' , ( err ) => {
279- new Promise ( ( resolve ) => {
280- setTimeout ( ( ) => {
281- expect ( setup ) . to . be . calledOnce
282- expect ( validate ) . to . be . calledOnce
283- expect ( clearPageCount , 'total times session cleared the page' ) . to . eq ( 2 )
284- expect ( err . message ) . to . contain ( 'Your `cy.session` **validate** callback returned false' )
285- done ( )
286- } , 4 )
275+ expect ( setup ) . to . be . calledOnce
276+ expect ( validate ) . to . be . calledOnce
277+ expect ( clearPageCount , 'total times session cleared the page' ) . to . eq ( 2 )
278+ expect ( err . message ) . to . contain ( 'Your `cy.session` **validate** callback returned false' )
279+
280+ expect ( logs [ 0 ] . get ( ) ) . to . contain ( {
281+ name : 'session' ,
282+ id : sessionGroupId ,
287283 } )
288- } )
289284
290- validate . callsFake ( ( ) => false )
285+ expect ( logs [ 0 ] . get ( 'renderProps' ) ( ) ) . to . contain ( {
286+ indicator : 'successful' ,
287+ message : '(new) session-1' ,
288+ } )
291289
292- cy . session ( 'session-1' , setup , { validate } )
293- } )
290+ expect ( logs [ 1 ] . get ( ) ) . to . contain ( {
291+ name : 'session' ,
292+ message : 'session-1' ,
293+ group : sessionGroupId ,
294+ } )
294295
295- it ( 'groups session logs correctly' , ( ) => {
296- expect ( logs [ 0 ] . get ( ) ) . to . contain ( {
297- name : 'session' ,
298- id : sessionGroupId ,
299- } )
296+ const createNewSessionGroup = logs [ 2 ] . get ( )
300297
301- expect ( logs [ 0 ] . get ( 'renderProps' ) ( ) ) . to . contain ( {
302- indicator : 'successful' ,
303- message : '(new) session-1' ,
304- } )
298+ expect ( createNewSessionGroup ) . to . contain ( {
299+ displayName : 'Create New Session' ,
300+ groupStart : true ,
301+ group : sessionGroupId ,
302+ } )
305303
306- expect ( logs [ 1 ] . get ( ) ) . to . contain ( {
307- name : 'session' ,
308- message : 'session-1' ,
309- group : sessionGroupId ,
310- } )
304+ expect ( logs [ 3 ] . get ( ) ) . to . contain ( {
305+ name : 'Clear Page' ,
306+ group : createNewSessionGroup . id ,
307+ } )
311308
312- const createNewSessionGroup = logs [ 2 ] . get ( )
309+ expect ( logs [ 4 ] . get ( ) ) . to . deep . contain ( {
310+ alias : [ 'setupSession' ] ,
311+ group : createNewSessionGroup . id ,
312+ } )
313313
314- expect ( createNewSessionGroup ) . to . contain ( {
315- displayName : 'Create New Session' ,
316- groupStart : true ,
317- group : sessionGroupId ,
318- } )
314+ expect ( logs [ 5 ] . get ( ) ) . to . contain ( {
315+ name : 'Clear Page' ,
316+ group : createNewSessionGroup . id ,
317+ } )
319318
320- expect ( logs [ 3 ] . get ( ) ) . to . contain ( {
321- name : 'Clear Page' ,
322- group : createNewSessionGroup . id ,
323- } )
319+ const validateSessionGroup = logs [ 6 ] . get ( )
324320
325- expect ( logs [ 4 ] . get ( ) ) . to . deep . contain ( {
326- alias : [ 'setupSession' ] ,
327- group : createNewSessionGroup . id ,
328- } )
321+ expect ( validateSessionGroup ) . to . contain ( {
322+ displayName : 'Validate Session' ,
323+ // FIXME....
324+ // displayName: 'Validate Session: invalid',
325+ // FIXME....
326+ // group: sessionGroupId,
327+ } )
329328
330- expect ( logs [ 5 ] . get ( ) ) . to . contain ( {
331- name : 'Clear Page' ,
332- group : createNewSessionGroup . id ,
329+ done ( )
333330 } )
334331
335- const validateSessionGroup = logs [ 6 ] . get ( )
332+ validate . callsFake ( ( ) => false )
336333
337- expect ( validateSessionGroup ) . to . contain ( {
338- displayName : 'Validate Session' ,
339- // FIXME....
340- // displayName: 'Validate Session: invalid',
341- // FIXME....
342- // group: sessionGroupId,
343- } )
334+ cy . session ( 'session-1' , setup , { validate } )
344335 } )
345336 } )
346337
@@ -590,11 +581,7 @@ describe('cy.session', { retries: 0 }, () => {
590581 } )
591582
592583 describe ( 'recreates existing session with failed validation flow' , ( ) => {
593- // TODO: make this a before hook. Before hook is timing out under the hood
594- // and the failure is being captured in tests further down in run-mode.
595- // This is only visible in open-mode when setting a breakpoint in
596- // patchRunnableResetTimeout in src/cypress/mocha.ts
597- it ( 'fails to recreate session' , function ( done ) {
584+ it ( 'fails to recreate session and logs correctly' , function ( done ) {
598585 setupTestContext ( )
599586 cy . log ( 'create new session for test' )
600587 cy . session ( 'session-1' , setup , { validate } )
@@ -605,103 +592,100 @@ describe('cy.session', { retries: 0 }, () => {
605592 } )
606593
607594 cy . once ( 'fail' , ( err ) => {
608- return setTimeout ( ( ) => {
609- expect ( err . message ) . to . contain ( 'Your `cy.session` **validate** callback returned false' )
610- expect ( setup ) . to . be . calledOnce
611- expect ( validate ) . to . be . calledTwice
612- expect ( clearPageCount , 'total times session cleared the page' ) . to . eq ( 3 )
613- done ( )
614- } , 4 ) // ensure last log clear page has been updated
615- } )
595+ expect ( err . message ) . to . contain ( 'Your `cy.session` **validate** callback returned false' )
596+ expect ( setup ) . to . be . calledOnce
597+ expect ( validate ) . to . be . calledTwice
598+ expect ( clearPageCount , 'total times session cleared the page' ) . to . eq ( 3 )
616599
617- cy . log ( 'restore session to test against' )
618- cy . session ( 'session-1' , setup , { validate } )
619- } )
600+ expect ( logs [ 0 ] . get ( ) ) . to . contain ( {
601+ name : 'session' ,
602+ id : sessionGroupId ,
603+ } )
620604
621- it ( 'groups session logs correctly' , ( ) => {
622- expect ( logs [ 0 ] . get ( ) ) . to . contain ( {
623- name : 'session' ,
624- id : sessionGroupId ,
625- } )
605+ expect ( logs [ 0 ] . get ( 'renderProps' ) ( ) ) . to . contain ( {
606+ indicator : 'bad' ,
607+ message : '(recreated) session-1' ,
608+ } )
626609
627- expect ( logs [ 0 ] . get ( 'renderProps' ) ( ) ) . to . contain ( {
628- indicator : 'bad' ,
629- message : '(recreated) session-1' ,
630- } )
610+ expect ( logs [ 1 ] . get ( ) ) . to . contain ( {
611+ name : 'session' ,
612+ message : 'session-1' ,
613+ group : sessionGroupId ,
614+ } )
631615
632- expect ( logs [ 1 ] . get ( ) ) . to . contain ( {
633- name : 'session' ,
634- message : 'session-1' ,
635- group : sessionGroupId ,
636- } )
616+ const recreatedSavedSessionGroup = logs [ 2 ] . get ( )
637617
638- const recreatedSavedSessionGroup = logs [ 2 ] . get ( )
618+ expect ( recreatedSavedSessionGroup ) . to . contain ( {
619+ displayName : 'Restore Saved Session' ,
620+ groupStart : true ,
621+ group : sessionGroupId ,
622+ } )
639623
640- expect ( recreatedSavedSessionGroup ) . to . contain ( {
641- displayName : 'Restore Saved Session' ,
642- groupStart : true ,
643- group : sessionGroupId ,
644- } )
624+ expect ( logs [ 3 ] . get ( ) ) . to . contain ( {
625+ name : 'Clear Page' ,
626+ group : recreatedSavedSessionGroup . id ,
627+ } )
645628
646- expect ( logs [ 3 ] . get ( ) ) . to . contain ( {
647- name : 'Clear Page' ,
648- group : recreatedSavedSessionGroup . id ,
649- } )
629+ const validateSessionGroup = logs [ 4 ] . get ( )
650630
651- const validateSessionGroup = logs [ 4 ] . get ( )
631+ expect ( validateSessionGroup ) . to . contain ( {
632+ displayName : 'Validate Session: invalid' ,
633+ group : sessionGroupId ,
634+ } )
652635
653- expect ( validateSessionGroup ) . to . contain ( {
654- displayName : 'Validate Session: invalid' ,
655- group : sessionGroupId ,
656- } )
636+ expect ( logs [ 5 ] . get ( ) ) . to . deep . contain ( {
637+ alias : [ 'validateSession' ] ,
638+ group : validateSessionGroup . id ,
639+ } )
657640
658- expect ( logs [ 5 ] . get ( ) ) . to . deep . contain ( {
659- alias : [ 'validateSession' ] ,
660- group : validateSessionGroup . id ,
661- } )
641+ expect ( logs [ 6 ] . get ( ) ) . to . deep . contain ( {
642+ showError : true ,
643+ group : validateSessionGroup . id ,
644+ } )
662645
663- expect ( logs [ 6 ] . get ( ) ) . to . deep . contain ( {
664- showError : true ,
665- group : validateSessionGroup . id ,
666- } )
646+ expect ( logs [ 6 ] . get ( 'error' ) . message ) . to . eq ( 'Your `cy.session` **validate** callback returned false.' )
667647
668- expect ( logs [ 6 ] . get ( 'error' ) . message ) . to . eq ( 'Your `cy.session` **validate** callback returned false.' )
648+ const createNewSessionGroup = logs [ 7 ] . get ( )
669649
670- const createNewSessionGroup = logs [ 7 ] . get ( )
650+ expect ( createNewSessionGroup ) . to . contain ( {
651+ displayName : 'Create New Session' ,
652+ groupStart : true ,
653+ group : sessionGroupId ,
654+ } )
671655
672- expect ( createNewSessionGroup ) . to . contain ( {
673- displayName : 'Create New Session' ,
674- groupStart : true ,
675- group : sessionGroupId ,
676- } )
656+ expect ( logs [ 8 ] . get ( ) ) . to . contain ( {
657+ name : 'Clear Page' ,
658+ group : createNewSessionGroup . id ,
659+ } )
677660
678- expect ( logs [ 8 ] . get ( ) ) . to . contain ( {
679- name : 'Clear Page' ,
680- group : createNewSessionGroup . id ,
681- } )
661+ expect ( logs [ 9 ] . get ( ) ) . to . deep . contain ( {
662+ alias : [ 'setupSession' ] ,
663+ group : createNewSessionGroup . id ,
664+ } )
682665
683- expect ( logs [ 9 ] . get ( ) ) . to . deep . contain ( {
684- alias : [ 'setupSession' ] ,
685- group : createNewSessionGroup . id ,
686- } )
666+ expect ( logs [ 10 ] . get ( ) ) . to . contain ( {
667+ name : 'Clear Page' ,
668+ group : createNewSessionGroup . id ,
669+ } )
687670
688- expect ( logs [ 10 ] . get ( ) ) . to . contain ( {
689- name : 'Clear Page' ,
690- group : createNewSessionGroup . id ,
691- } )
671+ const secondValidateSessionGroup = logs [ 11 ] . get ( )
692672
693- const secondValidateSessionGroup = logs [ 11 ] . get ( )
673+ expect ( secondValidateSessionGroup ) . to . contain ( {
674+ displayName : 'Validate Session' ,
675+ // displayName: 'Validate Session: invalid',
676+ group : sessionGroupId ,
677+ } )
694678
695- expect ( secondValidateSessionGroup ) . to . contain ( {
696- displayName : 'Validate Session' ,
697- // displayName: 'Validate Session: invalid',
698- group : sessionGroupId ,
699- } )
679+ expect ( logs [ 12 ] . get ( ) ) . to . deep . contain ( {
680+ alias : [ 'validateSession' ] ,
681+ group : secondValidateSessionGroup . id ,
682+ } )
700683
701- expect ( logs [ 12 ] . get ( ) ) . to . deep . contain ( {
702- alias : [ 'validateSession' ] ,
703- group : secondValidateSessionGroup . id ,
684+ done ( )
704685 } )
686+
687+ cy . log ( 'restore session to test against' )
688+ cy . session ( 'session-1' , setup , { validate } )
705689 } )
706690 } )
707691 } )
0 commit comments