¿Puede alguien por favor ayudar en lo siguiente:
Tengo que afirmar una matriz con x elementos (generalmente no más de 6 o 7) y si hay algún duplicado, tiene que arrojar un error, o un paso para fallar. Hasta ahora hice lo siguiente:
Cypress.Commands.add('addTextElementIntoArray', (list) => { var textsArray = [] cy.xpath(list).each(($el) => { const text = $el.text().replace(' ', '') textsArray.push(text) cy.log(text) }) })Intenté esta solución: Buscar duplicados , pero no funciona en Cypress. ¿Como puedo resolver esto? Gracias de antemano
Solución encontrada, y aquí está:
Cypress.Commands.add('addTextElementIntoArray', (list) => { var textsArray = [] var non_unique = [] cy.xpath(list) .each(($el) => { const text = $el.text().replace(' ', '') textsArray.push(text) cy.log(text) non_unique = textsArray.filter((item, i) => textsArray.includes(item, i + 1) ) }) .then(() => { expect(non_unique.length).equal(0) })})
Usando la respuesta de la pregunta vinculada en Cypress,
Cypress.Commands.add('listHasNoDuplicates', (list) => { cy.xpath(list) .then($els => [...$els].map(el => el.innerText.trim())) .then(texts => { const unique = new Set(texts) expect(texts.length).to.eq(unique.size) }) }) })