У меня есть тест на кипарис, который выдвигает на первый план проблему с лямбдой при холодном старте. Однако, доказав проблему, я хочу, чтобы тест прошел, обрабатывая холодный запуск и повторную попытку, пока проблема холодного запуска не будет решена.
Если бы я мог заставить cy.wait()
не выдавать утверждение об ошибке ( поэтому не останавливая тест) я мог бы включить состояние ответа xhr, чтобы попытаться через x промежуток времени. например;
context("upload trades", () => {
specify("handling cold-start delay", () => {
// attempt system action which will "warm up" cold lambdas
cy.uploadTradeForTomorrow("validTrade_CME_to_KochCE");
// implicitly wait for timeout to occur when posting trade list
cy.wait("@postTradeLists").then(request => {
// handle cold start
if (request.status !== 200) {
cy.log(
"non-200 response; assuming cold start, adding delay and trying again"
);
cy.wait(30000);
// refresh page to re-load Trade Uploads page
// given lambda's now hot
cy.visit("/");
cy.uploadTradeForTomorrow("validTrade_CME_to_KochCE");
// wait for second post, anticipating 200 response (hot-start)
cy.wait("@postTradeLists");
}
});
// check file uploaded successfully
cy.contains("File uploaded successfully").should("be.visible");
cy.get("button")
.contains("OK")
.should("be.enabled");
});
});
Однако в настоящий момент происходит сбой на линии cy.wait("@postTradeLists")
, когда ответ 504 (или, более вероятно, время ожидания 30000 мс) разрешается с сервера.
Есть ли способ сделать это, что я не знаю? Чрезмерное гугление не дает результатов. Спасибо.