@@ -111,15 +111,13 @@ describe('cy.session', { retries: 0 }, () => {
111
111
setupTestContext ( )
112
112
cy . log ( 'create new session to test against' )
113
113
cy . session ( 'session-1' , setup )
114
- . wait ( 4 ) // ensure last log clear page has been updated
114
+ cy . url ( ) . should ( 'eq' , 'about:blank' )
115
115
} )
116
116
117
117
it ( 'successfully creates new session' , ( ) => {
118
- cy . then ( ( ) => {
119
- expect ( setup ) . to . be . calledOnce
120
- // FIXME: currently page is cleared 3 times when it should clear 2 times
121
- expect ( clearPageCount , 'total times session cleared the page' ) . to . eq ( 3 )
122
- } )
118
+ expect ( setup ) . to . be . calledOnce
119
+ // FIXME: currently page is cleared 3 times when it should clear 2 times
120
+ expect ( clearPageCount , 'total times session cleared the page' ) . to . eq ( 3 )
123
121
} )
124
122
125
123
it ( 'groups session logs correctly' , ( ) => {
@@ -194,7 +192,7 @@ describe('cy.session', { retries: 0 }, () => {
194
192
cy . log ( 'create new session with validation to test against' )
195
193
196
194
cy . session ( 'session-1' , setup , { validate } )
197
- . wait ( 4 ) // ensure last log clear page has been updated
195
+ cy . url ( ) . should ( 'eq' , 'about:blank' )
198
196
} )
199
197
200
198
it ( 'successfully creates new session and validates it' , ( ) => {
@@ -264,77 +262,68 @@ describe('cy.session', { retries: 0 }, () => {
264
262
} )
265
263
266
264
describe ( 'create session with failed validation flow' , ( ) => {
267
- // TODO: make this a before hook. Before hook is timing out under the hood
268
- // and the failure is being captured in tests further down in run-mode.
269
- // This is only visible in open-mode when setting a breakpoint in
270
- // patchRunnableResetTimeout in src/cypress/mocha.ts
271
- it ( 'fails validation' , function ( done ) {
265
+ it ( 'fails validation and logs correctly' , function ( done ) {
272
266
setupTestContext ( )
273
267
cy . log ( 'create new session with validation to test against' )
274
268
275
269
cy . once ( 'fail' , ( err ) => {
276
- new Promise ( ( resolve ) => {
277
- setTimeout ( ( ) => {
278
- expect ( setup ) . to . be . calledOnce
279
- expect ( validate ) . to . be . calledOnce
280
- expect ( clearPageCount , 'total times session cleared the page' ) . to . eq ( 2 )
281
- expect ( err . message ) . to . contain ( 'Your `cy.session` **validate** callback returned false' )
282
- done ( )
283
- } , 4 )
270
+ expect ( setup ) . to . be . calledOnce
271
+ expect ( validate ) . to . be . calledOnce
272
+ expect ( clearPageCount , 'total times session cleared the page' ) . to . eq ( 2 )
273
+ expect ( err . message ) . to . contain ( 'Your `cy.session` **validate** callback returned false' )
274
+
275
+ expect ( logs [ 0 ] . get ( ) ) . to . contain ( {
276
+ name : 'session' ,
277
+ id : sessionGroupId ,
284
278
} )
285
- } )
286
279
287
- validate . callsFake ( ( ) => false )
280
+ expect ( logs [ 0 ] . get ( 'renderProps' ) ( ) ) . to . contain ( {
281
+ indicator : 'successful' ,
282
+ message : '(new) session-1' ,
283
+ } )
288
284
289
- cy . session ( 'session-1' , setup , { validate } )
290
- } )
285
+ expect ( logs [ 1 ] . get ( ) ) . to . contain ( {
286
+ name : 'session' ,
287
+ message : 'session-1' ,
288
+ group : sessionGroupId ,
289
+ } )
291
290
292
- it ( 'groups session logs correctly' , ( ) => {
293
- expect ( logs [ 0 ] . get ( ) ) . to . contain ( {
294
- name : 'session' ,
295
- id : sessionGroupId ,
296
- } )
291
+ const createNewSessionGroup = logs [ 2 ] . get ( )
297
292
298
- expect ( logs [ 0 ] . get ( 'renderProps' ) ( ) ) . to . contain ( {
299
- indicator : 'successful' ,
300
- message : '(new) session-1' ,
301
- } )
293
+ expect ( createNewSessionGroup ) . to . contain ( {
294
+ displayName : 'Create New Session' ,
295
+ groupStart : true ,
296
+ group : sessionGroupId ,
297
+ } )
302
298
303
- expect ( logs [ 1 ] . get ( ) ) . to . contain ( {
304
- name : 'session' ,
305
- message : 'session-1' ,
306
- group : sessionGroupId ,
307
- } )
299
+ expect ( logs [ 3 ] . get ( ) ) . to . contain ( {
300
+ name : 'Clear Page' ,
301
+ group : createNewSessionGroup . id ,
302
+ } )
308
303
309
- const createNewSessionGroup = logs [ 2 ] . get ( )
304
+ expect ( logs [ 4 ] . get ( ) ) . to . deep . contain ( {
305
+ alias : [ 'setupSession' ] ,
306
+ group : createNewSessionGroup . id ,
307
+ } )
310
308
311
- expect ( createNewSessionGroup ) . to . contain ( {
312
- displayName : 'Create New Session' ,
313
- groupStart : true ,
314
- group : sessionGroupId ,
315
- } )
309
+ expect ( logs [ 5 ] . get ( ) ) . to . contain ( {
310
+ name : 'Clear Page' ,
311
+ group : createNewSessionGroup . id ,
312
+ } )
316
313
317
- expect ( logs [ 3 ] . get ( ) ) . to . contain ( {
318
- name : 'Clear Page' ,
319
- group : createNewSessionGroup . id ,
320
- } )
314
+ const validateSessionGroup = logs [ 6 ] . get ( )
321
315
322
- expect ( logs [ 4 ] . get ( ) ) . to . deep . contain ( {
323
- alias : [ 'setupSession' ] ,
324
- group : createNewSessionGroup . id ,
325
- } )
316
+ expect ( validateSessionGroup ) . to . contain ( {
317
+ displayName : 'Validate Session: invalid' ,
318
+ group : sessionGroupId ,
319
+ } )
326
320
327
- expect ( logs [ 5 ] . get ( ) ) . to . contain ( {
328
- name : 'Clear Page' ,
329
- group : createNewSessionGroup . id ,
321
+ done ( )
330
322
} )
331
323
332
- const validateSessionGroup = logs [ 6 ] . get ( )
324
+ validate . callsFake ( ( ) => false )
333
325
334
- expect ( validateSessionGroup ) . to . contain ( {
335
- displayName : 'Validate Session: invalid' ,
336
- group : sessionGroupId ,
337
- } )
326
+ cy . session ( 'session-1' , setup , { validate } )
338
327
} )
339
328
} )
340
329
@@ -350,7 +339,7 @@ describe('cy.session', { retries: 0 }, () => {
350
339
351
340
cy . log ( 'restore session to test against' )
352
341
cy . session ( 'session-1' , setup )
353
- . wait ( 4 ) // ensure last log clear page has been updated
342
+ cy . url ( ) . should ( 'eq' , 'about:blank' )
354
343
} )
355
344
356
345
it ( 'successfully restores saved session' , ( ) => {
@@ -408,7 +397,7 @@ describe('cy.session', { retries: 0 }, () => {
408
397
409
398
cy . log ( 'restore session to test against' )
410
399
cy . session ( 'session-1' , setup , { validate } )
411
- . wait ( 4 ) // ensure last log clear page has been updated
400
+ cy . url ( ) . should ( 'eq' , 'about:blank' )
412
401
} )
413
402
414
403
it ( 'successfully restores saved session' , ( ) => {
@@ -483,7 +472,7 @@ describe('cy.session', { retries: 0 }, () => {
483
472
484
473
cy . log ( 'restore session to test against' )
485
474
cy . session ( 'session-1' , setup , { validate } )
486
- . wait ( 4 ) // ensure last log clear page has been updated
475
+ cy . url ( ) . should ( 'eq' , 'about:blank' )
487
476
} )
488
477
489
478
it ( 'successfully recreates session' , ( ) => {
@@ -584,11 +573,7 @@ describe('cy.session', { retries: 0 }, () => {
584
573
} )
585
574
586
575
describe ( 'recreates existing session with failed validation flow' , ( ) => {
587
- // TODO: make this a before hook. Before hook is timing out under the hood
588
- // and the failure is being captured in tests further down in run-mode.
589
- // This is only visible in open-mode when setting a breakpoint in
590
- // patchRunnableResetTimeout in src/cypress/mocha.ts
591
- it ( 'fails to recreate session' , function ( done ) {
576
+ it ( 'fails to recreate session and logs correctly' , function ( done ) {
592
577
setupTestContext ( )
593
578
cy . log ( 'create new session for test' )
594
579
cy . session ( 'session-1' , setup , { validate } )
@@ -599,102 +584,99 @@ describe('cy.session', { retries: 0 }, () => {
599
584
} )
600
585
601
586
cy . once ( 'fail' , ( err ) => {
602
- return setTimeout ( ( ) => {
603
- expect ( err . message ) . to . contain ( 'Your `cy.session` **validate** callback returned false' )
604
- expect ( setup ) . to . be . calledOnce
605
- expect ( validate ) . to . be . calledTwice
606
- expect ( clearPageCount , 'total times session cleared the page' ) . to . eq ( 3 )
607
- done ( )
608
- } , 4 ) // ensure last log clear page has been updated
609
- } )
587
+ expect ( err . message ) . to . contain ( 'Your `cy.session` **validate** callback returned false' )
588
+ expect ( setup ) . to . be . calledOnce
589
+ expect ( validate ) . to . be . calledTwice
590
+ expect ( clearPageCount , 'total times session cleared the page' ) . to . eq ( 3 )
610
591
611
- cy . log ( 'restore session to test against' )
612
- cy . session ( 'session-1' , setup , { validate } )
613
- } )
592
+ expect ( logs [ 0 ] . get ( ) ) . to . contain ( {
593
+ name : 'session' ,
594
+ id : sessionGroupId ,
595
+ } )
614
596
615
- it ( 'groups session logs correctly' , ( ) => {
616
- expect ( logs [ 0 ] . get ( ) ) . to . contain ( {
617
- name : 'session' ,
618
- id : sessionGroupId ,
619
- } )
597
+ expect ( logs [ 0 ] . get ( 'renderProps' ) ( ) ) . to . contain ( {
598
+ indicator : 'bad' ,
599
+ message : '(recreated) session-1' ,
600
+ } )
620
601
621
- expect ( logs [ 0 ] . get ( 'renderProps' ) ( ) ) . to . contain ( {
622
- indicator : 'bad' ,
623
- message : '(recreated) session-1' ,
624
- } )
602
+ expect ( logs [ 1 ] . get ( ) ) . to . contain ( {
603
+ name : 'session' ,
604
+ message : 'session-1' ,
605
+ group : sessionGroupId ,
606
+ } )
625
607
626
- expect ( logs [ 1 ] . get ( ) ) . to . contain ( {
627
- name : 'session' ,
628
- message : 'session-1' ,
629
- group : sessionGroupId ,
630
- } )
608
+ const recreatedSavedSessionGroup = logs [ 2 ] . get ( )
631
609
632
- const recreatedSavedSessionGroup = logs [ 2 ] . get ( )
610
+ expect ( recreatedSavedSessionGroup ) . to . contain ( {
611
+ displayName : 'Restore Saved Session' ,
612
+ groupStart : true ,
613
+ group : sessionGroupId ,
614
+ } )
633
615
634
- expect ( recreatedSavedSessionGroup ) . to . contain ( {
635
- displayName : 'Restore Saved Session' ,
636
- groupStart : true ,
637
- group : sessionGroupId ,
638
- } )
616
+ expect ( logs [ 3 ] . get ( ) ) . to . contain ( {
617
+ name : 'Clear Page' ,
618
+ group : recreatedSavedSessionGroup . id ,
619
+ } )
639
620
640
- expect ( logs [ 3 ] . get ( ) ) . to . contain ( {
641
- name : 'Clear Page' ,
642
- group : recreatedSavedSessionGroup . id ,
643
- } )
621
+ const validateSessionGroup = logs [ 4 ] . get ( )
644
622
645
- const validateSessionGroup = logs [ 4 ] . get ( )
623
+ expect ( validateSessionGroup ) . to . contain ( {
624
+ displayName : 'Validate Session: invalid' ,
625
+ group : sessionGroupId ,
626
+ } )
646
627
647
- expect ( validateSessionGroup ) . to . contain ( {
648
- displayName : 'Validate Session: invalid' ,
649
- group : sessionGroupId ,
650
- } )
628
+ expect ( logs [ 5 ] . get ( ) ) . to . deep . contain ( {
629
+ alias : [ 'validateSession' ] ,
630
+ group : validateSessionGroup . id ,
631
+ } )
651
632
652
- expect ( logs [ 5 ] . get ( ) ) . to . deep . contain ( {
653
- alias : [ 'validateSession' ] ,
654
- group : validateSessionGroup . id ,
655
- } )
633
+ expect ( logs [ 6 ] . get ( ) ) . to . deep . contain ( {
634
+ showError : true ,
635
+ group : validateSessionGroup . id ,
636
+ } )
656
637
657
- expect ( logs [ 6 ] . get ( ) ) . to . deep . contain ( {
658
- showError : true ,
659
- group : validateSessionGroup . id ,
660
- } )
638
+ expect ( logs [ 6 ] . get ( 'error' ) . message ) . to . eq ( 'Your `cy.session` **validate** callback returned false.' )
661
639
662
- expect ( logs [ 6 ] . get ( 'error' ) . message ) . to . eq ( 'Your `cy.session` **validate** callback returned false.' )
640
+ const createNewSessionGroup = logs [ 7 ] . get ( )
663
641
664
- const createNewSessionGroup = logs [ 7 ] . get ( )
642
+ expect ( createNewSessionGroup ) . to . contain ( {
643
+ displayName : 'Create New Session' ,
644
+ groupStart : true ,
645
+ group : sessionGroupId ,
646
+ } )
665
647
666
- expect ( createNewSessionGroup ) . to . contain ( {
667
- displayName : 'Create New Session' ,
668
- groupStart : true ,
669
- group : sessionGroupId ,
670
- } )
648
+ expect ( logs [ 8 ] . get ( ) ) . to . contain ( {
649
+ name : 'Clear Page' ,
650
+ group : createNewSessionGroup . id ,
651
+ } )
671
652
672
- expect ( logs [ 8 ] . get ( ) ) . to . contain ( {
673
- name : 'Clear Page' ,
674
- group : createNewSessionGroup . id ,
675
- } )
653
+ expect ( logs [ 9 ] . get ( ) ) . to . deep . contain ( {
654
+ alias : [ 'setupSession' ] ,
655
+ group : createNewSessionGroup . id ,
656
+ } )
676
657
677
- expect ( logs [ 9 ] . get ( ) ) . to . deep . contain ( {
678
- alias : [ 'setupSession' ] ,
679
- group : createNewSessionGroup . id ,
680
- } )
658
+ expect ( logs [ 10 ] . get ( ) ) . to . contain ( {
659
+ name : 'Clear Page' ,
660
+ group : createNewSessionGroup . id ,
661
+ } )
681
662
682
- expect ( logs [ 10 ] . get ( ) ) . to . contain ( {
683
- name : 'Clear Page' ,
684
- group : createNewSessionGroup . id ,
685
- } )
663
+ const secondValidateSessionGroup = logs [ 11 ] . get ( )
686
664
687
- const secondValidateSessionGroup = logs [ 11 ] . get ( )
665
+ expect ( secondValidateSessionGroup ) . to . contain ( {
666
+ displayName : 'Validate Session: invalid' ,
667
+ group : sessionGroupId ,
668
+ } )
688
669
689
- expect ( secondValidateSessionGroup ) . to . contain ( {
690
- displayName : 'Validate Session: invalid' ,
691
- group : sessionGroupId ,
692
- } )
670
+ expect ( logs [ 12 ] . get ( ) ) . to . deep . contain ( {
671
+ alias : [ 'validateSession' ] ,
672
+ group : secondValidateSessionGroup . id ,
673
+ } )
693
674
694
- expect ( logs [ 12 ] . get ( ) ) . to . deep . contain ( {
695
- alias : [ 'validateSession' ] ,
696
- group : secondValidateSessionGroup . id ,
675
+ done ( )
697
676
} )
677
+
678
+ cy . log ( 'restore session to test against' )
679
+ cy . session ( 'session-1' , setup , { validate } )
698
680
} )
699
681
} )
700
682
} )
0 commit comments