Open gkatsanos opened 1 year ago
@gkatsanos cy.session restores cookies from a session that was captured and restores them as if those actions that set the cookie happened in the new test. There's no direct action to 'save this exact cookie to persist'.
Hm, interesting, I added this:
beforeEach(() => {
cy.setCookie(
"CookieConsent",
"{stamp:%27vjpVJCpe9QeDb7Ba7mmn6GE5TtAmzBnDEVA8csu2OzT/ZGu6jV7YGw==%27%2Cnecessary:true%2Cpreferences:true%2Cstatistics:true%:%27gr%27}"
)
})
in my e2e.js file and it worked. Should this be in documentation?
Why is localStorage's data missing in the next it block, causing a redirection to the login page. @jennifer-shehane Help me with this ( There is no code in the code to intentionally clear localStorage )
it('Login', () => {
......
})
it('visit user page', () => {
// Data in localStorage is deleted, causing the jump to fail
cy.visit('/user')
})
Why is localStorage's data missing in the next it block, causing a redirection to the login page. @jennifer-shehane Help me with this ( There is no code in the code to intentionally clear localStorage )
it('Login', () => { ...... }) it('visit user page', () => { // Data in localStorage is deleted, causing the jump to fail cy.visit('/user') })
This is because cypress automatically clears all cookies before each test (it block) to ensure a clean state, unless you configure it otherwise. This behavior is part of Cypress's automatic test isolation, which helps to avoid side effects between tests.
One workaround I found is, you can have the login functionality in beforeEach block (write the login code there) so that the it
blocks gets hydrated with the expected cookies, or you can set the cookies manually in the beforeEach block.
Hope this helps.
Description
confusing documentation
URL of Issue(s)
none
Steps to replicate
I read and re-read the documentation on cy.session, the migration guide the changes of the Cypress.Cookies API and all. and I cant figure out what the syntax is - there's no example that shows how to simply persist a cookie across all test. Could you modify the docs, add an example or just comment here? (I'm happy to make a PR)
Browser
Chrome latest
Device
Additional Information
I read and re-read the documentation on cy.session, the migration guide the changes of the Cypress.Cookies API and all. and I cant figure out what the syntax is - there's no example that shows how to simply persist a cookie across all test. Could you modify the docs, add an example or just comment here? (I'm happy to make a PR)