Feedback user: nu se aud sunete, raza prea mare, lipsesc powerup-urile. - sfx(type) WebAudio local in arcade: bomb/explosion/enemy/powerup/death; beep(ok) din libJS ramane pentru raspuns corect/gresit. - raza fixa EXPLOSION_RANGE=3 -> bombRange variabil de la BASE_RANGE=1 (Bomberman clasic); maxBombs de la BASE_BOMBS=1. - powerup-uri: la spargerea cutiei, sansa 0.32 sa cada flacara (raza+1) sau bomba (bombe+1); ridicate mergand pe ele; HUD arata bombe/raza. - fix: powerup-ul cadea pe celula cutiei si checkExplosionHits il stergea instant -> colectez brokenBoxes, drop dupa checkExplosionHits. Hooks __game: powerups/bombRange/maxBombs/dropPowerupAt. Smoke 27/27. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
39 lines
1.8 KiB
Markdown
39 lines
1.8 KiB
Markdown
# 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 (~27 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-ul `fileURL(name)` mapează cale relativă la `file://`; campania scrie
|
|
HTML temp generat via builder (`gameHTML`) și-l încarcă de pe `file://`.
|
|
- **Zero erori consolă = invariant.** `trackErrors(page)` colectează `console.error` + `pageerror`;
|
|
fiecare test asertează `errors.length === 0` la final.
|
|
- **Tag-uri:** `@regresie` (15 — exemplu-*.html + edge cases + mobil 320px + regenerare via gameHTML +
|
|
bomberman gameplay + bomberman rază/powerup-uri) și `@campanie` (12 — intro→hartă→camere→final, resume,
|
|
cameră moartă, idempotență ușă, `$`/`$&`, beep, mobil, audio S1, voce/narațiune D10,
|
|
a11y tap/aria/reduced-motion, navigare overworld).
|
|
- **Status țintă: 27/27 PASS.**
|
|
|
|
## Work Guidance
|
|
- După modificări la motoare (`escape-builder.html`): rulează suita completă; extinde `@regresie` dacă
|
|
adaugi/schimbi un stil, `@campanie` pentru contractul de montare.
|
|
- Nu testa pe screenshot-uri de pixeli — asertează stare/text/erori.
|
|
|
|
## Verification
|
|
```bash
|
|
npx playwright test tests/smoke.mjs # 27/27
|
|
npx playwright test tests/smoke.mjs --grep @regresie
|
|
npx playwright test tests/smoke.mjs --grep @campanie
|
|
```
|
|
|
|
## Child DOX Index
|
|
(none — leaf)
|