Imported from alvariitoSW/app-organizador-MIR (
.claude/skills/prueba-de-secuencia/SKILL.md). Install upstream withnpx skills add alvariitoSW/app-organizador-MIR --skill prueba-de-secuencia. Copyright stays with the author.
Probar secuencias, no caminos sueltos
Por qué
En una auditoría se encontraron seis fallos reales con 133 pruebas en verde. Todas las pruebas arrancaban de cero y tocaban un solo camino. Los seis fallos solo aparecían al encadenar dos gestos: leer una receta y luego cambiar el enlace, pulsar «limpiar» y luego guardar, compartir y luego recargar.
Una prueba que hace una sola cosa desde un estado limpio no prueba la app: prueba la función.
Cómo se escribe
- Encadena. Mínimo dos gestos reales seguidos, sin resetear el estado entre ellos. Lo que se busca es lo que queda sucio del gesto anterior.
- Conduce la interfaz, no la API.
page.click('[data-a="..."]'), nowindow.PG.loQueSea(). Lo segundo pasa por encima de los dos switches de acciones, que es donde se esconden los fallos mudos. - Parte del estado que deja la prueba anterior cuando sea realista. La suite
es una sola función
async: mete tu bloque entre llaves{ ... }para que tusconstno choquen con los de arriba. - Nombre en español diciendo el comportamiento esperado, no el nombre de la función.
- Comenta el porqué: qué fallo concreto fija, en una o dos líneas.
Trampas de Playwright en este repositorio
page.fill()no disparachangeen un campo de texto. Si la acción vive en el listener dechange, hay que hacerkeyboard.press('Tab').page.evaluate(() => ({p: unaPromesa}))devuelve{}. Hay que esperar la promesa dentro de la página.- Para el service worker o el modo sin conexión hace falta servir desde un
subdirectorio (como GitHub Pages) y
context.setOffline(true): eso vive aparte, entests/compartir.test.js.
Validación obligatoria
Revierte el arreglo y comprueba que cae exactamente tu prueba. Una prueba que pasa igual con el bug dentro no vale nada.
# con el arreglo revertido a propósito
npm test # tiene que caer LA TUYA, y ninguna otra
# restaurado
npm test # todo verde
Di en el mensaje de commit cuántas caen al revertir («con el service worker anterior caen 4 de esas 6»).