Quiero verificar con una prueba de ciprés si el valor es correcto en campos de texto de una sola línea y áreas de texto de varias líneas.
Aquí tengo un cuadro de una sola línea donde uso el código a continuación para agregar una entrada:
cy.followLabel("When did the incident happen?").type("single \nline");
Lo mismo para el área de texto de varias líneas
cy.followLabel("Deenter code herescribe what happened").type("multiple \nlines");
Traté de validarlo con .should() pero no he encontrado ningún encadenador que se ajuste a mis necesidades.
¿Hay algo como .contains("\n") ?
Chai Assertion Library tiene una afirmación de singleLine en el módulo chai-string .
linea sola
afirmar.singleLine('abcdef');
expect('abcdef').to.be.singleLine();
Para usar afirmaciones de otras bibliotecas, consulte la receta de Cypress Adición de afirmaciones de Chai
ejemplo sencillo
Instalar
yarn add -D chai-string //or npm install -D chai-stringPrueba
chai.use(require('chai-string')); it('tests for singleLine', () => { cy.get('input') .type("single \nline") .invoke('val') .should('be.singleLine') // passes cy.get('textarea') .type("multiple \nlines") .invoke('val') .should('not.be.singleLine') // passes })Puede comprobar directamente que el texto interior tiene el carácter de nueva línea \n .
cy.get('selector').then(($ele) => { expect($ele).to.contain('\n') }) En caso de que su texto interno no tenga los caracteres de nueva línea, afirma la etiqueta de estilo que contiene overflow-wrap: break-word
cy.get('selector').should('have.attr', 'style').and('include', 'overflow-wrap: break-word')Sé que hay una afirmación "coincidencia" para expresiones regulares.
match(RegExp) Aliases: matches expect('testing').to.match(/^test/)(de https://docs.cypress.io/guides/references/assertions )
Entonces, en su caso, la expresión regular podría match(/.*\n.*/gm)