Skip to content

Commit a8c8234

Browse files
Merge branch 'develop' into sessions-refactor-pt5
# Conflicts: # packages/driver/cypress/integration/commands/sessions/sessions.spec.js # packages/driver/src/cy/commands/sessions/index.ts
2 parents 6ab9d79 + d4dfd2f commit a8c8234

File tree

1 file changed

+125
-143
lines changed

1 file changed

+125
-143
lines changed

packages/driver/cypress/integration/commands/sessions/sessions.spec.js

+125-143
Original file line numberDiff line numberDiff line change
@@ -111,15 +111,13 @@ describe('cy.session', { retries: 0 }, () => {
111111
setupTestContext()
112112
cy.log('create new session to test against')
113113
cy.session('session-1', setup)
114-
.wait(4) // ensure last log clear page has been updated
114+
cy.url().should('eq', 'about:blank')
115115
})
116116

117117
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)
123121
})
124122

125123
it('groups session logs correctly', () => {
@@ -194,7 +192,7 @@ describe('cy.session', { retries: 0 }, () => {
194192
cy.log('create new session with validation to test against')
195193

196194
cy.session('session-1', setup, { validate })
197-
.wait(4) // ensure last log clear page has been updated
195+
cy.url().should('eq', 'about:blank')
198196
})
199197

200198
it('successfully creates new session and validates it', () => {
@@ -264,77 +262,68 @@ describe('cy.session', { retries: 0 }, () => {
264262
})
265263

266264
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) {
272266
setupTestContext()
273267
cy.log('create new session with validation to test against')
274268

275269
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,
284278
})
285-
})
286279

287-
validate.callsFake(() => false)
280+
expect(logs[0].get('renderProps')()).to.contain({
281+
indicator: 'successful',
282+
message: '(new) session-1',
283+
})
288284

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+
})
291290

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()
297292

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+
})
302298

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+
})
308303

309-
const createNewSessionGroup = logs[2].get()
304+
expect(logs[4].get()).to.deep.contain({
305+
alias: ['setupSession'],
306+
group: createNewSessionGroup.id,
307+
})
310308

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+
})
316313

317-
expect(logs[3].get()).to.contain({
318-
name: 'Clear Page',
319-
group: createNewSessionGroup.id,
320-
})
314+
const validateSessionGroup = logs[6].get()
321315

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+
})
326320

327-
expect(logs[5].get()).to.contain({
328-
name: 'Clear Page',
329-
group: createNewSessionGroup.id,
321+
done()
330322
})
331323

332-
const validateSessionGroup = logs[6].get()
324+
validate.callsFake(() => false)
333325

334-
expect(validateSessionGroup).to.contain({
335-
displayName: 'Validate Session: invalid',
336-
group: sessionGroupId,
337-
})
326+
cy.session('session-1', setup, { validate })
338327
})
339328
})
340329

@@ -350,7 +339,7 @@ describe('cy.session', { retries: 0 }, () => {
350339

351340
cy.log('restore session to test against')
352341
cy.session('session-1', setup)
353-
.wait(4) // ensure last log clear page has been updated
342+
cy.url().should('eq', 'about:blank')
354343
})
355344

356345
it('successfully restores saved session', () => {
@@ -408,7 +397,7 @@ describe('cy.session', { retries: 0 }, () => {
408397

409398
cy.log('restore session to test against')
410399
cy.session('session-1', setup, { validate })
411-
.wait(4) // ensure last log clear page has been updated
400+
cy.url().should('eq', 'about:blank')
412401
})
413402

414403
it('successfully restores saved session', () => {
@@ -483,7 +472,7 @@ describe('cy.session', { retries: 0 }, () => {
483472

484473
cy.log('restore session to test against')
485474
cy.session('session-1', setup, { validate })
486-
.wait(4) // ensure last log clear page has been updated
475+
cy.url().should('eq', 'about:blank')
487476
})
488477

489478
it('successfully recreates session', () => {
@@ -584,11 +573,7 @@ describe('cy.session', { retries: 0 }, () => {
584573
})
585574

586575
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) {
592577
setupTestContext()
593578
cy.log('create new session for test')
594579
cy.session('session-1', setup, { validate })
@@ -599,102 +584,99 @@ describe('cy.session', { retries: 0 }, () => {
599584
})
600585

601586
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)
610591

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+
})
614596

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+
})
620601

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+
})
625607

626-
expect(logs[1].get()).to.contain({
627-
name: 'session',
628-
message: 'session-1',
629-
group: sessionGroupId,
630-
})
608+
const recreatedSavedSessionGroup = logs[2].get()
631609

632-
const recreatedSavedSessionGroup = logs[2].get()
610+
expect(recreatedSavedSessionGroup).to.contain({
611+
displayName: 'Restore Saved Session',
612+
groupStart: true,
613+
group: sessionGroupId,
614+
})
633615

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+
})
639620

640-
expect(logs[3].get()).to.contain({
641-
name: 'Clear Page',
642-
group: recreatedSavedSessionGroup.id,
643-
})
621+
const validateSessionGroup = logs[4].get()
644622

645-
const validateSessionGroup = logs[4].get()
623+
expect(validateSessionGroup).to.contain({
624+
displayName: 'Validate Session: invalid',
625+
group: sessionGroupId,
626+
})
646627

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+
})
651632

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+
})
656637

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.')
661639

662-
expect(logs[6].get('error').message).to.eq('Your `cy.session` **validate** callback returned false.')
640+
const createNewSessionGroup = logs[7].get()
663641

664-
const createNewSessionGroup = logs[7].get()
642+
expect(createNewSessionGroup).to.contain({
643+
displayName: 'Create New Session',
644+
groupStart: true,
645+
group: sessionGroupId,
646+
})
665647

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+
})
671652

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+
})
676657

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+
})
681662

682-
expect(logs[10].get()).to.contain({
683-
name: 'Clear Page',
684-
group: createNewSessionGroup.id,
685-
})
663+
const secondValidateSessionGroup = logs[11].get()
686664

687-
const secondValidateSessionGroup = logs[11].get()
665+
expect(secondValidateSessionGroup).to.contain({
666+
displayName: 'Validate Session: invalid',
667+
group: sessionGroupId,
668+
})
688669

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+
})
693674

694-
expect(logs[12].get()).to.deep.contain({
695-
alias: ['validateSession'],
696-
group: secondValidateSessionGroup.id,
675+
done()
697676
})
677+
678+
cy.log('restore session to test against')
679+
cy.session('session-1', setup, { validate })
698680
})
699681
})
700682
})

0 commit comments

Comments
 (0)