Hola chicos, tengo una tabla que consta de algunas filas y columnas donde una de las columnas puede estar vacía, así que quiero excluirla de alguna manera.
Actualmente estoy comprobando así, que parece que hay demasiados escritos que no son necesarios.
cy.get('tr td.cdk-cell.amount.cdk-column-Amount').each(($column) => { expect($column).to.not.be.empty }) cy.get('tr td.cdk-cell.cryptocurrency.cdk-column-BTC').each(($column) => { expect($column).to.not.be.empty }) cy.get('tr td.cdk-cell.status.cdk-column-Status').each(($column) => { expect($column).to.not.be.empty })No puedo hacer lo siguiente ya que una de las columnas siempre está vacía.
cy.get('tbody[role="rowgroup"] tr td').each(($ele) => { expect($ele.text().trim().length).to.be.at.least(1) })Entonces mi pregunta es cómo ignorar 1 columna y verificar si todos los demás tienen valor presente
Desglose un poco los selectores, use .each() sobre las filas porque es una prueba por fila (¿supongo que es correcto?).
Dentro de la fila, obtenga el resultado isEmpty de todas las columnas que le interesan.
Combinan las variables isEmpty en un resultado que puede probar.
cy.get('tbody[role="rowgroup"] tr').each(($tr, rowIndex) => { const amountCol = $tr.find('td.cdk-cell.amount.cdk-column-Amount'); const cryptoCol = $tr.find('td.cdk-cell.cryptocurrency.cdk-column-BTC'); const statusCol = $tr.find('td.cdk-cell.status.cdk-column-Status'); const amountIsEmpty = amountCol.is(':empty') // result is true/false const cryptoIsEmpty = cryptoCol.is(':empty') const statusIsEmpty = statusCol.is(':empty') const allAreEmpty = amountIsEmpty && cryptoIsEmpty && statusIsEmpty; if (allAreEmpty) { throw new Error(`Row ${rowIndex} has all three columns empty`) } // or expect(allAreEmpty).to.eq(false); })