test: add headless visual validation (#7) #43

Merged
Reliodas merged 1 commit from test/7-visual-validation into develop 2026-07-01 07:16:18 +00:00
Owner

Implémente le ticket #7 (validation visuelle minimale des cartes).

Ce que fait la PR

Ajoute tests/visual-validation.js : ouvre chaque éditeur actif dans un Chromium headless (Playwright), attend le chargement du préréglage par défaut, puis vérifie :

  • aucune erreur console/JS bloquante (les échecs de ressources externes — polices Google, illustrations distantes — sont ignorés) ;
  • au moins deux cartes rendues, recto (#card-front) et verso (#card-back) ;
  • le ratio des cartes pour chaque format disponible (portrait 63×88 ; paysage 148×105 sur créatures / classes / sous-classes) ;
  • les débordements évidents (contenu clippé) signalés en avertissement.

Une capture de référence est enregistrée par page et par format dans tests/screenshots/ (non versionnée), consultable après le test.

Dépendance

Introduit package.json avec Playwright en dépendance de développement uniquement. L'application servie reste statique et sans dépendance runtime. Le Chromium est réutilisé depuis le cache Playwright existant (build v1228, aucun téléchargement). .gitignore ajouté pour node_modules/ et les captures générées.

Utilisation

npm install
npm run test:visual   # ou node tests/visual-validation.js

Vérification (critères d'acceptation)

  • Chaque page active charge sans erreur console bloquante : vérifié (8/8 OK).
  • Chaque page affiche recto + verso : vérifié (>= 2 cartes).
  • Formats portrait et paysage disponibles vérifiés : ratio contrôlé par format.
  • Captures de référence consultables après le test : tests/screenshots/*.png.

Prépare le pipeline CI #42 (étape supplémentaire au smoke test #6).

Closes #7

🤖 Generated with Claude Code

Implémente le ticket #7 (validation visuelle minimale des cartes). ## Ce que fait la PR Ajoute `tests/visual-validation.js` : ouvre chaque éditeur actif dans un Chromium headless (Playwright), attend le chargement du préréglage par défaut, puis vérifie : - **aucune erreur console/JS bloquante** (les échecs de ressources externes — polices Google, illustrations distantes — sont ignorés) ; - **au moins deux cartes** rendues, recto (`#card-front`) et verso (`#card-back`) ; - le **ratio** des cartes pour chaque format disponible (portrait 63×88 ; paysage 148×105 sur créatures / classes / sous-classes) ; - les **débordements** évidents (contenu clippé) signalés en avertissement. Une **capture de référence** est enregistrée par page et par format dans `tests/screenshots/` (non versionnée), consultable après le test. ## Dépendance Introduit `package.json` avec **Playwright en dépendance de développement uniquement**. L'application servie reste statique et sans dépendance runtime. Le Chromium est réutilisé depuis le cache Playwright existant (build v1228, aucun téléchargement). `.gitignore` ajouté pour `node_modules/` et les captures générées. ## Utilisation ``` npm install npm run test:visual # ou node tests/visual-validation.js ``` ## Vérification (critères d'acceptation) - Chaque page active charge sans erreur console bloquante : vérifié (8/8 OK). - Chaque page affiche recto + verso : vérifié (>= 2 cartes). - Formats portrait et paysage disponibles vérifiés : ratio contrôlé par format. - Captures de référence consultables après le test : `tests/screenshots/*.png`. Prépare le pipeline CI #42 (étape supplémentaire au smoke test #6). Closes #7 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Add tests/visual-validation.js: opens each active editor in headless
Chromium (Playwright), waits for the default preset to load, then checks
for blocking console/JS errors (external asset failures ignored), the
presence of recto/verso cards, the card aspect ratio per available format
(portrait and landscape), and obvious content overflow. A reference
screenshot is saved per page and format under tests/screenshots/.

Introduces package.json with Playwright as a dev-only dependency (the
served app stays static and dependency-free at runtime; Chromium is reused
from the existing Playwright cache). Adds .gitignore for node_modules and
generated screenshots. Documented in the README and CHANGELOG; run with
`npm run test:visual`.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019fEfJomg2UxRUoR6fduyAC
Reliodas merged commit 03b07007df into develop 2026-07-01 07:16:18 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: dnd/cards#43
No description provided.