Skip to content

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:

SchrittWerkzeug
FormatierungPrettier
LintingESLint
Typprüfungastro check
TestsVitest
BuildAstro
Fixture-BuildsAstro
Post-BuildVitest
End-to-End-TestsPlaywright

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 chromium

Details 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