Cypress handles cookies with the methods Cookies.preserveOnce() and Cookies.defaults(). The method Cookies.debug() produces logs to the console, if there are any changes to the cookies.
By default, Cypress removes all cookies prior to each test execution. We can utilize Cypress.Cookies.preserveOnce() to preserve the cookies with their names to be used for other tests.
Syntax
The syntax for the commands related to the cookies in Cypress are as follows −
This will produce console logs if cookie values are configured or cleared.
Cypress.Cookies.debug(enable, option)
Here,
- enable – if debug of cookie should be enabled.
- option – configure default values for cookies, for example, preserve cookies.
Cypress.Cookies.debug(true) // logs will generate if cookies are modified
cy.clearCookie('cookie1')
cy.setCookie('cookie2', 'val')
To reduce the level of logging.
Cypress.Cookies.debug(true, { verbose: false })
Cypress.Cookies.debug(false) // logs will not generate if cookies are modified
The syntax given below will preserve the cookies and they will not be cleared prior to execution of another test.
Cypress.Cookies.preserveOnce(cookie names...)
This syntax is used to modify the global configuration and to maintain a group of cookies that are preserved for a test. Any modification will be applicable for that particular test. (maintained in cypress/support/index.js file and are loaded prior to test execution).
Cypress.Cookies.defaults(option)
Cypress.Cookies.defaults({
preserve: 'cookie1'
})
Here, the cookie named cookie1 will not be cleared before running the test.
Cookie Methods
Some of the cookie methods in Cypress are as follows −
- cy.clearCookies() − It removes all the cookies from present domain and subdomain.
- cy.clearCookie(name) − It removes a cookie from the browser by name.
- cy.getCookie(name) − It is used to obtain a cookie from the browser by name.
- cy.getCookies() − It is used to obtain all the cookies.
- cy.setCookie(name) − It can configure a cookie.
Implementation
Given below is the implementation of the cookie methods in Cypress −
describe('Adglob Test', function () {
// test case
it('Scenario 1', function (){
// launch the application
cy.visit("https://accounts.google.com");
// enable cookie logging
Cypress.Cookies.debug(true)
//set cookie
cy.setCookie('cookie1', 'value1')
//get cookie by name and verify value
cy.getCookie('cookie1').should('have.property', 'value', 'value1')
//clear cookie by name
cy.clearCookie('cookie')
//get all cookies
cy.getCookies()
//clear all cookies
cy.clearCookies()
//verify no cookies
cy.getCookies().should('be.empty')
});
});
Execution Results
The output is mentioned below −
Pingback: cc site
Pingback: Free cooling