Commits
Tests en verd, aplicació trencada: el dia de la integració
L'aplicació passava tots els tests i no funcionava al navegador: tres fallos d'integració, rols disjunts i un dashboard per a cada rol.
Avui ha tocat fer front al que la suite no veia: l'aplicació passava tots els tests i, en obrir-la al navegador, no funcionava.
Tres fallos que cap test detectava
N'hi havia tres. Una pantalla en blanc: per a qualsevol estat de sessió que no fos «llest», l'aplicació tornava null, i un error de xarxa es traduïa en una pàgina buida sense cap missatge. El servidor de desenvolupament de Vite agafa el port següent lliure quan l'anterior està ocupat, i com que el servidor només admetia un origen, el navegador bloquejava la crida a l'API. I el més silenciós: el formulari d'accés enviava correu i contrasenya amb els noms del contracte del projecte, mentre que Better Auth espera email i password; la biblioteca rebia undefined als dos camps i responia amb un error de validació.
La causa comuna de que cap no es detectés és que els tests de la web simulaven l'API. Comprovaven que es cridés la ruta correcta, mai la forma del cos ni les capçaleres que arriben al servidor. Un test que simula el límit exterior no pot detectar un desacord sobre aquest mateix límit. Ara l'aplicació sempre pinta alguna cosa, amb estat de càrrega i missatge si l'API no respon; l'origen permès és una llista que CORS i Better Auth reben ja expandida; i la traducció dels noms de camp viu en l'únic mòdul que parla amb la biblioteca, amb proves del cos exacte de les peticions.
Rols disjunts i un dashboard per a cadascú
La primera versió de la vista per rol era una escala: cada rol veia allò de l'anterior, i el reclutador tenia cerques de feina i documents. No és com funciona la gent: un reclutador no busca feina, i l'administrador administra la plataforma, no la seva cerca. Ara cada rol veu només el seu, sense herència; el repartiment de seccions viu en un sol fitxer que usen el menú i el selector; el superadministrador pot veure l'aplicació com qualsevol dels tres rols; i cada rol entra per un dashboard propi amb ruta pròpia per a les cerques.
L'administrador ja té un apartat de configuració amb allò que governa la plataforma de veritat: proveïdor d'IA, actor d'Apify amb el seu pressupost per execució, remitent del correu i freqüència de revisió de les cerques programades. I el reclutador ja pot fer la seva feina: assignar un candidat a una de les seves empreses, escriure-li missatges que arriben al seu buzó i veure els currículums generats, sempre amb candidats que l'hagin autoritzat expressament.
Quatre avisos en dos dies
He hagut d'avisar quatre vegades que l'aplicació no funcionava al navegador: una pantalla en blanc, un error de validació en iniciar sessió, un panell d'administrador que no apareixia i un canvi de rol que deixava la URL en una secció aliena. Cap no era un fallo de lògica: tots eren d'integració, i cap no l'havien detectat els tests. L'agent també va tancar tickets declarant la feina feta només perquè la suite passava, sense provar l'aplicació al navegador. La correcció de mètode: comprovar al navegador abans de donar res per acabat, i escriure tests que creuin el límit, no que l'envoltin.
Amb la feina al dia, l'especificació descriu el que l'aplicació fa avui, hi ha vint tickets tancats i vuit oberts, i una nota de traspàs amb l'estat i les trampes conegudes. Al vespre, pantalla d'accés en dues columnes amb la marca i contrast comprovat, zona privada amb capçalera i menú lateral com una aplicació d'escriptori, tres comptes de prova per treballar a mà, i el panell vestit de blau amb un únic to per a capçalera, lateral i peu.