По сути, моя задача следующая: когда мое приложение запускает исходящий запрос xhr, я хочу сделать некоторые утверждения для полезной нагрузки запроса и продолжить выполнение других утверждений, как только запрос будет выполнен.
Поэтому я использовал опцию onRequest
в методе cy.route
, которая позволяет вам иметь доступ к исходящему запросу xhr. Мой исходный код выглядел так:
cy.server();
cy.route({
method:'POST',
url:'/api/v3/table-metas/**',
onRequest(xhr) {
console.log('==========BEFORE========');
cy.wrap(xhr).
its('request').
its('body').
its('embedded').
should('to.deep.equal',
[
{
"attributes": {
"name": "Test Name"
},
"type": "test_type"
}
]
).debug();
console.log('=============AFTER===========');
}
}).as('getTableMetas');
Но этот код заставляет мое приложение думать, что запрос не выполнен, и в кипарисовом журнале показывалось, что запрос ожидал до тех пор, пока он не завершился с истечением времени ожидания.
Тогда я решил снять свое утверждение, и все работает отлично!:
cy.server();
cy.route({
method:'POST',
url:'/api/v3/table-metas/**',
onRequest(xhr) {
console.log('==========BEFORE========');
console.log('=============AFTER===========');
}
}).as('getTableMetas');
Таким образом, я решил, что проблема в моем коде утверждения, и провел некоторое тестирование с другими методами cy
, но кажется, что любой метод cy.
приводит к точно такой же ошибке:
cy.server();
cy.route({
method:'POST',
url:'/api/v3/table-metas/**',
onRequest(xhr) {
console.log('==========BEFORE========');
cy.log('AAAAAAAAAAAA');
console.log('=============AFTER===========');
}
}).as('getTableMetas');
Вот скриншот Cypress Log для последней части кода:
Что я здесь не так делаю?
Если это спроектированное поведение кипариса, то как мне утверждать тело исходящего запроса?
Буду благодарен за любую помощь