Skip to content

Commit e3f4fa2

Browse files
clean up failed validation tests
1 parent 631f587 commit e3f4fa2

File tree

1 file changed

+121
-137
lines changed

1 file changed

+121
-137
lines changed

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

Lines changed: 121 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)