Search code examples
browsere2e-testingcypress

In Cypress, set a token in localStorage before test


I want to login and set a localStorage token on the client (specifically jwt)

How can I accomplish this using cy.request, as suggested in the Cypress Documentation?


Solution

  • Here's an example of adding a command cy.login() that you can use in any Cypress test, or put in a beforeEach hook.

    Cypress.Commands.add('login', () => { 
      cy.request({
        method: 'POST',
        url: 'http://localhost:3000/api/users/login',
        body: {
          user: {
            email: '[email protected]',
            password: 'jakejake',
          }
        }
      })
      .then((resp) => {
        window.localStorage.setItem('jwt', resp.body.user.token)
      })
    
    })
    

    Then in your test:

    beforeEach(() => {
      cy.login()
    })