У меня есть следующий тест, который должен проверить, что нажатие на ссылку загружает PDF.Это особенно важно, так как мы используем Gatsby, который, в свою очередь, использует компонент связи Reach Router, и относительно легко неверно сконфигурировать вещи, чтобы маршрутизатор перехватил ссылку и перешел на страницу 404 вместо начала загрузки.
describe.skip(`Downloads`, () => {
it(`Downloads the expected file`, () => {
cy.visit(pagePath)
cy.getByHref(downloadPath)
.should(`have.attr`, `target`, `_blank`)
.click()
cy.location(`pathname`).should(`eq`, pagePath)
})
})
Хотя это и не идеально, он, по крайней мере, проверяет отсутствие навигации в результате нажатия на ссылку.
Проблема в том, что при запуске этого теста с использованием cy run
, который запускает тесты в Chrome, тест зависает из-за диалога загрузки Chrome.
Как можно предотвратитьпроверить на зависание?
Обратите внимание, что downloadPath преобразуется в pdf в статическом каталоге, например, /static/example.pdf
.Серверный компонент отсутствует.
Также обратите внимание, что этот вопрос отличается от: Как я могу использовать Cypress.io, чтобы утверждать, что загрузка файла была начата без фактической загрузки?