Buton "Vezi diploma" pe finale (+ "Joaca din nou"). Overlay #diploma: certificat A4 portret alb, chenar dublu accent, titlu serif (singurul), numele copilului = cel mai mare element. - buildDiploma(): rand de stele per camera (roomStars[], persistat in resume; camere sarite = 🔒 "sarita"), cuvant magic in dale (lacate pt sarite), footer = data + "creat de {creator}" + marcaj auriu "timpul a expirat" - camp builder nou: creator ("Creat de") - @media print izoleaza #diploma (rest visibility:hidden, margin 20mm, print-color-adjust:exact) - exemplu-campanie.html regenerat Smoke 31/31 (test nou "diploma": nume/titlu/stele/cuvant/creator/inapoi) + screenshot scratch/diploma.png (A4, camera sarita, footer expirat). Cluster T10/PR2 complet (D7 + Timer + Muzica + Diploma). Ramas Etapa 2: Adventure Mode v0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1.9 KiB
1.9 KiB
tests/ — Harness Playwright
Purpose
Smoke + regresie + campanie E2E pentru jocurile generate. Verifică faptic: fiecare stil se rezolvă până la ecranul final, fără erori de consolă.
Ownership
tests/smoke.mjs— unicul fișier de teste (~31 teste).playwright.config.mjs(la root, gitignored) — config dev.
Local Contracts
- NU commita
package.json/package-lock.json/playwright.config.mjs— produsul rămâne zero-dependențe. Instalarea dev e o singură dată:npm i -D @playwright/test && npx playwright install chromium. - Fără npm scripts — se rulează direct cu
npx. - Teste pe
file://— helper-ulfileURL(name)mapează cale relativă lafile://; campania scrie HTML temp generat via builder (gameHTML) și-l încarcă de pefile://. - Zero erori consolă = invariant.
trackErrors(page)colecteazăconsole.error+pageerror; fiecare test aserteazăerrors.length === 0la final. - Tag-uri:
@regresie(16 — exemplu-*.html + edge cases + mobil 320px + regenerare via gameHTML + stil top-level invalid la import + bomberman gameplay + bomberman rază/powerup-uri) și@campanie(17 — intro→hartă→camere→final, resume, cameră moartă, idempotență ușă,$/$&, beep, mobil, audio S1, voce/narațiune D10, a11y tap/aria/reduced-motion, navigare overworld, timer calm T10, muzica ambient T10, diploma A4). - Status țintă: 31/31 PASS.
Work Guidance
- După modificări la motoare (
escape-builder.html): rulează suita completă; extinde@regresiedacă adaugi/schimbi un stil,@campaniepentru contractul de montare. - Nu testa pe screenshot-uri de pixeli — asertează stare/text/erori.
Verification
npx playwright test tests/smoke.mjs # 31/31
npx playwright test tests/smoke.mjs --grep @regresie
npx playwright test tests/smoke.mjs --grep @campanie
Child DOX Index
(none — leaf)