Вы можете использовать cy.wrap( promise )
, хотя все еще может быть ошибка, из-за которой никогда не прерывается (еще не проверял).
В противном случае, вы можете использовать cy.then()
(что недокументировано, может сломаться в будущем, и я не буду оказывать никаких услуг, продвигая внутренние API):
cy.then(() => {
return myAsyncFunction();
});
Вы можете использовать обе эти команды на верхнем уровне спецификации, как если бы вы использовали любую команду, и она будет помещена в очередь команд Cypress и выполнена по порядку.
Но в отличие от cy.wrap
(IIRC), cy.then()
поддерживает передачу обратного вызова, что означает, что вы можете выполнить асинхронную функцию во время выполняемой команды cy, а не в начале spec (потому что выражения, передаваемые командам cy, оцениваются сразу) --- это то, что я делаю в примере выше.