A veces quiero pasar una cadena vacía a .type() y recibo un error, por ejemplo:
data = { "test1": "test", "test2": "", };y cuando asigné el primer caso, funciona:
cy.get(...).type("test1")La salida:
test1Pero cuando paso el siguiente, solo cadena vacía:
cy.get(...).type("")Tengo un error que no puedo proporcionar una cadena vacía. ¿Cómo puedo arreglar eso?
Este fragmento de código es parte de una función, por lo que debe funcionar tanto para una cadena vacía como para una cadena no vacía.
Intenté algo como esto:
cy.get(...).type('{backspace}', variable)funciona cuando la cadena está vacía pero también se salta la variable si la variable contiene caracteres.
No es posible que un usuario escriba "", por lo que tampoco puede hacerlo su prueba.
Use cy.get(...).clear() para dejarlo vacío.
De los comentarios, parece que ya has llegado a la solución.
Por ejemplo,
for (const key in data) { cy.get(key).type(data[key]) // fails when data[key] is empty }podría arreglarse con
for (const key in data) { if (data[key]) { cy.get(key).type(data[key]) // only type non-empty data values } }Encontré la respuesta por mi cuenta en otros recursos
let array = ['test1', '', 'test2', 'test3'] for (let item in array) { cy.get(...).type(`{backspace}` + `${item}`) }y su trabajo, incluso si la cadena está vacía.