Описание
Я не могу найти способ разрешения данных в cy.request().then()
с использованием Cypress.Promise
:
Код
it('get inst state', () => {
getInstState().then(res => {
console.log('res: ', res);
});
function getInstState() {
return cy.request({
url: 'instances/state',
headers,
}).then(res => {
expect(res.status).equal(200);
// do something
return new Cypress.Promise(resolve => {
resolve(res);
});
});
}
Результат
Я возвращаю Cypress.Promise
экземпляр в cy.request().then()
, но этот код всегда записывает res: null
, поэтому я не могу использовать следующий .then()
, чтобы получить результат ответа
Я хочу добавить в цепочку cy.request()
как это:
it('get inst state', () => {
getInstState().then(res => {
console.log('res: ', res);
instAction(res).then(actionResult => {
console.log(actionResult)
// next request;
})
});
function getInstState() {
return cy.request({
url: 'instances/batch/state',
headers,
}).then(res => {
expect(res.status).equal(200);
// do something
return new Cypress.Promise(resolve => {
resolve(res);
});
});
}
function instAction(res) {
expect(res.status).equal(200);
const items = res.body.items;
return cy.request({
url: '/instances/action',
method: 'POST',
body: {
instances: items.map(item => item.inst_id),
action: 'server_off',
},
}).then(res => {
cy.log('server_off inst', res);
expect(res.status).equal(200);
return res;
});
}
как сделать cy.request().then()
может цепочку следующих .then()
?
Версии
Cypress@4.4.0