как цепочки cy.requset (). then ()? - PullRequest
       5

как цепочки cy.requset (). then ()?

0 голосов
/ 24 апреля 2020

Описание

Я не могу найти способ разрешения данных в 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...