Принудительные ошибки для расцепленных маршрутов с кипарисом - PullRequest
0 голосов
/ 05 марта 2020

Я тестирую приложение / сайт Gatsby с Cypress. Он делает несколько вызовов API с разных страниц. Мы приняли решение заглушить и высмеять все эти запросы, поэтому наши тесты никогда не должны выходить за рамки нашего живого API.

Я искал способ получить ошибку Cypress, если был сделан запрос к любой из наших конечных точек API, который не был заглушен, и я нашел параметр конфигурации force404 ( docs ) для cy.server, который заставляет 404 возвращаться для любых маршрутов, которые не заглушены. Это работает хорошо, но на самом деле слишком хорошо. Гэтсби использует XHR внутри для предварительной загрузки других страниц (среди прочего), и это заставляет всех возвращать также 404, эффективно разрушая приложение.

Есть ли способ настроить cy.server, чтобы он возвращал только 404 с маршрутов, которые не являются заглушками, которые находятся в определенном домене. Например, если наш домен API является api.example.com. Есть ли способ настроить cy.server, чтобы возвращать 404 только для запросов к api.example.com, которые не являются заглушками, оставляя запросы в других доменах или в том же домене нетронутыми.

1 Ответ

1 голос
/ 05 марта 2020

Вы пробовали белый список? Вы можете добавить правило здесь, чтобы в то время как список всех доменов, которые не являются

https://docs.cypress.io/api/commands/server.html#Change -the-default-whitelisting * вашего сервера

cy.server({
  whitelist: (xhr) => {
    // specify your own function that should return
    // truthy if you want this xhr to be ignored,
    // not logged, and not stubbed.
  }
})
...