Как я могу сравнить массивы в Cypress? - PullRequest
0 голосов
/ 26 сентября 2019

Я хочу сравнить данные, представленные в массиве, с данными, полученными из класса с использованием .each в кипарисе?

Используя приведенный ниже код, я попытался перебрать массив FileType, используя приведенный ниже код.

const Filetype = ['Access', 'Excel', 'Text/CSV','PDF','JSON','dsdsd'];
const te = cy.wrap($bodyFind).find('.data-sourcename').should('have.length',6).each(($li) => { cy.log($li.text()); });

te.each(($text)=> {
cy.log("Te" + $text); 
//prints ['Access','Excel','Text/CSV','PDF','JSON','XML'];
});

// Converted FileType Array to Cypress object using cy.wrap command.
const cywrap = cy.wrap(Filetype);
      te.each((e1)=>cywrap.each((e2)=> {
      if(e1 == e2) {
         expect(e1).equals(e2);
       }
     }));

Но значения e1 и e2 одинаковы.Ожидается, что с 'dsdsd' произойдет сбой, равно 'XML', тогда как при передаче с 'dsdsd' будет равно 'dsdsd'

1 Ответ

1 голос
/ 26 сентября 2019

Вы можете использовать map здесь.

const filetypes = ['Access', 'Excel', 'Text/CSV','PDF','JSON','dsdsd'];
cy.get('.data-sourcename').should(($els) => {
  // map jquery elements to array of their innerText
  const elsText = $els.toArray().map(el => el.innerText)
  expect(elsText).to.deep.eq(filetypes)
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...