Erscheinungsbild
Tests
pnpm verify
Ein Befehl für die gesamte Qualitätskette. Die CI ruft bei jedem Pull Request exakt denselben Befehl auf, damit lokale und entfernte Ergebnisse nicht auseinanderlaufen.
Aktuell enthalten:
| Schritt | Werkzeug |
|---|---|
| Formatierung | Prettier |
| Linting | ESLint |
| Typprüfung | astro check |
| Tests | Vitest |
| Build | Astro |
| Fixture-Builds | Astro |
| Post-Build | Vitest |
| End-to-End-Tests | Playwright |
Die Fixture-Builds bauen zwei vollständige Konfigurationen — einmal mit allen optionalen Funktionen aus, einmal mit allen an. Damit bleibt kein Feature-Flag ungetestet; Details unter Feature Flags.
Sie unterscheiden sich zusätzlich in der Umgebung: „minimal" entsteht als Entwicklungsstand, „full" mit PUBLIC_ENVIRONMENT=production. Nur so sind beide Zustände der Indexierung auf dem ausgelieferten HTML geprüft — die Zusage „Preview bleibt draußen, Produktion kommt hinein" wäre sonst nur zur Hälfte belegt.
Unter tests/integration/ liegen Prüfungen, die einen echten Build starten. Sie sind langsamer als Unit-Tests, sichern dafür aber Akzeptanzkriterien ab — etwa dass eine verbotene Konfiguration den Build tatsächlich abbricht.
Unter tests/dist/ liegen Prüfungen auf dem ausgelieferten HTML. Sie laufen über eine eigene Vitest-Konfiguration (pnpm run test:dist), weil sie einen fertigen Build voraussetzen und deshalb erst danach an der Reihe sind. Geprüft werden alle drei Ausgaben — auch die Fixtures. Aktuell decken sie die Bildausgabe sowie Metadaten, strukturierte Daten, robots.txt und die Sitemap ab. Prüfungen der internen Links kommen mit den Inhaltstypen dazu.
Die End-to-End-Tests laufen zuletzt und brauchen einmalig installierte Browser:
sh
pnpm exec playwright install chromiumDetails unter End-to-End-Tests.
Geplante Inhalte
- Consent-Szenarien und Formular-Flows in der E2E-Suite — M5 und M6
- Post-Build-Prüfungen zu internen Links — mit den Inhaltstypen
- Contract-Tests für den Formularvertrag in TypeScript und PHP — M6 und M7
- Performance-Budgets — M8