Cypress cy.visit не отправляет файлы cookie с запросом

#cookies #cypress

Вопрос:

Я столкнулся со странным поведением при выполнении Cypress тестов. Похоже cy.visit() , что не удается отправить файлы cookie с запросом.

Прежде всего, да, в cypress/supports/index.js я установил:

 Cypress.Cookies.defaults({
  preserve: 'token'
})
 

И в своем тесте я делаю следующее:

 it('test', () => {
  cy.logIn()
  cy.getCookie('token').then(console.log)
  cy.visit('/')
  // verify that the user is redirected to /home, which it isn't...
})
 

Чтобы войти в систему пользователя, я запускаю свою пользовательскую logIn() команду, которая успешно регистрирует пользователя. После этого приложение устанавливает файл cookie, названный token маркером сеанса. Затем я console.log успешно обработал файл cookie непосредственно перед звонком cy.visit() . Однако мой сервер получает запрос без файлов cookie и, следовательно, не выполняет перенаправление, как ожидалось…

Кто-нибудь сталкивался с чем-то подобным? Есть какие-нибудь идеи, что может произойти?

Ответ №1:

Я боролся с той же проблемой. Мое печенье было помечено secure: true флажком. После установки этого значения secure: false (только в среде тестирования) файл cookie был успешно отправлен в Cypress.