Nimic nu observă un fișier din frontend/public pe care nu-l cere nimeni
frontend/src/test/publicAssets.test.ts verifică o singură direcție: fiecare cale de
imagine scrisă în src are un fișier pe disc. Direcția inversă — fiecare fișier de pe
disc e cerut de ceva — nu e verificată de nimic. De aceea cele 26 de fișiere moarte din
#30 (closed) au putut sta luni de zile în repo, în două exemplare fiecare, fără ca vreo unealtă
să spună ceva.
Ce am găsit
frontend/src/test/publicAssets.test.ts:31 culege căile din sursă cu
const ASSET_LITERAL = /'(\/[\w./-]+\.(?:png|jpe?g|webp|svg|mp4|woff2))'/g;
și asertează că fiecare se regăsește în public. Un fișier din public pe care nu-l
numește nimeni trece neobservat: nu e nici măcar citit.
Consecință măsurată la livrarea lui #30 (closed): 46 de fișiere șterse, toate verificările automate rămân verzi înainte și după. Testele nu pot deosebi starea de dinainte de cea de după, deci CI nu e dovadă pentru acea lucrare — dovada a trebuit construită de mână (istoric git, API de producție, 384 de pagini randate, browser real).
De făcut
-
Adaugă în publicAssets.test.tsdirecția inversă: fiecare fișier dinfrontend/publictrebuie să fie sau referit dinsrc, sau din datele de seed, sau trecut într-o listă explicită de excepții cu motivul scris lângă. -
Lista de excepții e obligatorie și trebuie să fie mică: favicon.svg,apple-touch-icon.png,robots.txt,config.js, fonturile, cardurile dinshare/(cerute doar prinog:image, deci niciodată dintr-un literal dinsrc), galeriile/products/pdp/<handle>/<n>și posterele construite din calea video înfrontend/src/lib/useHeroPoster.ts. Fiecare intrare primește un comentariu care spune cine o cere de fapt. -
Fiecare excepție de mapă întreagă trebuie să fie o mapă, nu un tipar larg — altfel testul devine inert exact acolo unde ar fi folositor.
Criteriu de acceptare
- Testul pică dacă se adaugă în
frontend/publicun fișier pe care nu-l referă nimic și care nu e în lista de excepții. Verificat prin adăugarea unui fișier de probă, rularea suitei și ștergerea lui. - Suita trece pe starea curentă a repo-ului, fără să fie nevoie de excepții adăugate în masă ca s-o faci verde.