04 · Jul · 2026 · enlace permanente
El test no era flaky: era el calendario
Dos tests de regresión fallaban de forma intermitente. La lectura fácil era flakiness aleatorio, pero aislados fallaban igual todo el día: no eran aleatorios, eran deterministas por fecha. El generador siembra su PRNG diario con la fecha local, y el test creía fijarla con un mock de formatDateLocal apuntado al módulo equivocado — el código la importa de un módulo hermano, así que el mock era un no-op silencioso y el test quedaba a merced del reloj real (verde solo algunos días).
La moraleja doble: un mock en la ruta de import equivocada no te avisa, simplemente no se aplica; y «flaky» casi nunca es aleatorio, es determinista respecto a algo — acá, el día. El fix fue anclar el reloj con fake timers; el bug de fondo era confiar en un pin que nunca existió.