Как сделать через интервал запросы перед тестами? Я попробовал 2 способа повторить запросы, но ни один из них не удался;
Мне нужно загрузить файл, ожидая, пока он не будет успешно импортирован
На первом шаге я загружаю файл на свой сервер в Cypress
before( ()=> {
//my custom POST command
cy.form_request(url, data)
.then(({id}) => {
Затем я жду идентификатор загруженного файла
check_It_Till_Success_It(id);
})
})
Затем полученный идентификатор я передаю в новый запрос, чтобы проверить его статус на сервере и необходимо повторить запрос пока обработка файла не закончена. В приведенном ниже решении написано
CypressError: cy.wait () принимает псевдонимы только для маршрутов. Псевдоним: 'check_it_request' не соответствует маршруту.
function check_It_Till_Success_It(id) {
function checkRequest() {
cy.request("GET", "http://localhost:28080/admin/api/catalog/import/status/" + id)
.then(({status}) => {
if (status === "FINISHED" || status === "FAILED") {
clearInterval(check_It);
} else {
console.log('retry one more time');
}
}).as('check_it_request');
cy.wait("@check_it_request");
}
checkRequest();
const check_It = setInterval(checkRequest, 1000);
}
или вот еще одно мое решение с помощью рекурсивного запроса:
function check_It_Till_Success_It(id) {
return (
cy.request("GET", BASE_URL + "/admin/api/catalog/import/status/" + id)
.then(({status}) => {
if (status === "FINISHED" || status === "FAILED") {
console.log('success');
} else {
console.log('retry one more time');
setTimeout(() => check_It_Till_Success_It(id), 1000)
}
})
)
}
, но выдает ошибка:
Uncaught CypressError: Cypress обнаружил, что вы вернули обещание из команды, одновременно вызывая одну или несколько команд cy в этом обещании.
Что я делаю не так?