mirror of
https://github.com/s-frick/effigenix.git
synced 2026-03-28 10:09:35 +01:00
4.2 KiB
4.2 KiB
Test Automation – Aufgaben & Phasen
Branch: experiment/test-automation
Konzept: docs/ui-testing-automation.md
Merge-Regel: Kein Merge in
mainohne ausdrückliche menschliche Bestätigung.
Phase 0 – TUI-Tests ausbauen
Sofort umsetzbar, kein neues Setup nötig. Nutzt
ink-testing-library+vitest. Ort:frontend/apps/cli/src/__tests__/screens/
__tests__/screens/Verzeichnisstruktur anlegen (masterdata/,production/)SupplierForm.test.tsx– TC-SUP-01 (Pflichtfelder), TC-SUP-02, TC-SUP-03 (leerer Name)CategoryForm.test.tsx– TC-CAT-01 (Happy Path), TC-CAT-04 (Duplikat), TC-CAT-06 (leerer Name)SupplierList.test.tsx– TC-SUP-06 (Filter/Suche)- Bestehende 4 Tests (
ConfirmDialog,ErrorDisplay,SuccessDisplay,useRoles) als Vorlage prüfen - Alle neuen TUI-Tests laufen durch (
pnpm --filter @effigenix/cli test)
Phase 1 – API E2E Grundgerüst
Playwright-Setup in
test-automation/web-ui/. API-Tests ohne Browser.
web-ui/package.jsonfinalisieren (Abhängigkeiten prüfen, ggf. pnpm workspace eintragen)web-ui/playwright.config.tsvalidieren und anpassenweb-ui/fixtures/auth.fixture.tsimplementieren und testenweb-ui/fixtures/seed.fixture.tsimplementieren (DB-Reset-Strategie klären)web-ui/helpers/api-client.tstypisiert implementieren- Backend
Dockerfileerstellen (test-Profil, mit Seed-Daten) docker-compose.e2e.ymlvalidieren (DB → Backend → e2e-runner Healthchecks)web-ui/Dockerfilevalidieren- Erste Spec:
tests/api/masterdata/categories.spec.ts(TC-CAT, Issue #62) - Erste Spec:
tests/api/masterdata/suppliers.spec.ts(TC-SUP, Issue #63) - End-to-end-Run lokal erfolgreich:
docker compose -f test-automation/docker-compose.e2e.yml up just test-e2eRecipe imjustfileergänzen
Phase 2 – Vollständige API-Coverage
Alle manual-testing Issues und Feature-Stories als Playwright-Specs.
tests/api/masterdata/customers.spec.ts– TC-CUS, Issue #65tests/api/masterdata/contracts.spec.ts– TC-B2B, Issue #66tests/api/masterdata/articles.spec.ts– TC-ART, Issue #64tests/api/auth/authorization.spec.ts– TC-AUTH, Issue #67tests/api/production/orders.spec.ts– US-P13–P17, Issues #38–#42tests/api/production/batches.spec.ts– US-P09–P12, Issues #33–#36tests/api/production/recipes.spec.ts– US-P02–P08, Issues #26–#32tests/api/production/traceability.spec.ts– US-P18–P19, Issues #43–#44tests/api/inventory/stock.spec.ts– Story 2.x–6.x, Issues #4–#20tests/api/inventory/movements.spec.tstests/api/inventory/reservations.spec.ts- Test-Generierungs-Skript (
scripts/generate-tests-from-issue.ts) finalisieren - Skript in
justfilealsjust generate-test <issue-nr>integrieren - Alle Specs im Docker-Stack grün
Phase 3 – CI/CD Integration
GitHub Actions Workflow für automatische Test-Ausführung.
.github/workflows/e2e.ymlerstellen- Trigger: Push auf
main, PRs gegenmain - JUnit-Report als CI-Artefakt hochladen
- Playwright HTML-Report als GitHub Pages veröffentlichen (optional)
- Badge in README einbinden
Phase 4 – Web UI Tests (Browser)
Erst sinnvoll, wenn
apps/webausgebaut ist. Platzhalter bereits vorhanden.
- Browser-Projekt in
playwright.config.tsaktivieren (web-chromium) - Page Object Models für Web-App-Seiten anlegen
- Login-Flow als Browser-Test
- Erste Screen-Tests (analog zu TUI-Tests in Phase 0)
- Visuelle Regression via Playwright Screenshots (optional)
Offene Punkte & Entscheidungen
| Punkt | Status | Massnahme |
|---|---|---|
Backend Dockerfile |
Fehlt | In Phase 1 erstellen |
| Seed-Testdaten Isolation | Offen | Strategie in Phase 1 klären (DB-Reset vor Suite oder pro Test) |
gh Token read:project Scope |
Fehlt | gh auth refresh -s read:project ausführen wenn nötig |
| TUI-Tests Abgrenzung | Klar | Vitest + ink-testing-library, gemockte API-Calls |
| Scanner (Tauri/mobil) | Out of scope | Separates Konzept, ggf. test-automation/scanner/ später |