← EP21 Internal Docs Podpora21.cz
ADR · ADR-0008 · v1.0.0

Testing Toolchain Strategy

accepted v1.0.0 Authors: david.sorf, claude-sonnet-4-6 Created: 2026-04-10 Updated: 2026-04-10
testing e2e playwright phpunit qa toolchain
Podpora21 používá hybridní testovací strategii: Playwright pro E2E smoke crawl a scénáře (make e2e / make e2e-auth), PHPUnit pro unit a integration testy — test pyramid s důrazem na rychlé unit testy.
Related tasks:

Kontext

Projekt kombinuje Nette aplikační vrstvu, PostgreSQL DB a bridge orchestraci na externí skripty. Potřebujeme:

1. Rychlé testy pro doménovou logiku a services (unit/integration)

2. Scénáře blízké produkčnímu provozu pro UI flows (E2E)

3. Smoke crawl pro detekci Tracy exceptions a JS chyb po každé změně

Uvažované varianty:

A) Pouze Playwright pro vše — zamítnuto: pomalejší feedback loop pro domain/service testy

B) Pouze PHPUnit bez acceptance vrstvy — zamítnuto: chyběla by validace end-to-end UX flow

C) Hybridní strategie — PHPUnit + Playwright

Rozhodnutí

✓ Chosen: C — Hybridní strategie: Playwright E2E + PHPUnit unit/integration

Playwright zvolen pro E2E protože:

1. Existující crawler.spec.ts infrastruktura (WebCrawler, Logger, auth) je přenosná z EP21 ekosystému

2. Headless Chromium, screenshot on failure, JSONL event log — vhodné pro CI i daily pipeline

3. make e2e (anonymous) + make e2e-auth (s credentials z .env.e2e) pokrývají oba přístupy

PHPUnit pro unit a integration testy:

1. Rychlý feedback loop pro Model/Service logiku

2. Přímý přístup k DB pro integration testy bez HTTP overhead

Test pyramid: unit testy jsou základ, E2E smoke je doplněk pro detekci regresí.

E2E konfigurace

Konfigurace: tests/e2e/config/e2e.config.json

Artifakty: artifacts/e2e/events.jsonl, summary.json, playwright-report/, screenshots/

Make targety:

make e2e — Playwright crawler (unauthenticated)

make e2e-auth — s credentials z .env.e2e

make daily — full daily pipeline (E2E → sync → prompt)

Spec soubory:

tests/e2e/crawler.spec.ts — smoke crawler (general)

tests/e2e/helpdesk.spec.ts — helpdesk smoke testy (dashboard, list, detail, new ticket, status change)

tests/e2e/entity-creation.spec.ts — fixture-driven form submission testy

Authentikace pro e2e-auth: .env.e2e (gitignored) s E2E_USERNAME + E2E_PASSWORD — testovací agent user s předem nastaveným tenantem a právy.

Důsledky

Pozitivní:

Negativní / rizika:

Changelog

VersionDateAuthorNote
1.0.02026-04-10david.sorf + claude-sonnet-4-6

Migrováno a rozšířeno z docs/adr/ADR-Testing-Toolchain-Strategy.md. Přidán Playwright jako primární E2E nástroj (nahrazuje Codeception z původního ADR), přidán helpdesk.spec.ts scope.