Как отключить кэширование для перехваченных вызовов?

#angular #cypress #cache-control

#angular #cypress #контроль кэша

Вопрос:

В настоящее время я использую Cypress 6.4.0, который запускает мое приложение Angular. Это приложение Angular вызывает маршрут синхронизации времени серверной части в начале. Мы перехватываем этот вызов через:

 cy.wait('/api/t', { requestTimeout: 10_000 }).then((req) => {
    expect(req.response!.statusCode).to.equal(200);
    // some extra stuff...
});
 

Это работает для первого теста, но второй всегда терпит неудачу. Я проверил сетевой журнал, и кажется, что второй ответ приходит из кэша браузера.
Сначала я подумал, что серверная часть или кэш Angular удалили заголовки pragma and no-cache , но при запуске приложения без Cypress заголовки остаются.

В моем тесте есть 2 теста, а второй завершается неудачей. Или, если у меня есть 1 тест в нем и перезагрузите его в браузере Cypress с помощью R .

Итак, есть ли способ отключить кэширование в Cypress?

Ответ №1:

Проверьте сообщение о проблемах с перехватом в блоге Глеба Бахмутова

 cy.intercept('/todos', req => {
  delete req.headers['if-none-match']
})