mirror of
https://github.com/s-frick/effigenix.git
synced 2026-03-28 12:19:35 +01:00
96 lines
4.2 KiB
Markdown
96 lines
4.2 KiB
Markdown
# Test Automation – Aufgaben & Phasen
|
||
|
||
Branch: `experiment/test-automation`
|
||
Konzept: [`docs/ui-testing-automation.md`](./docs/ui-testing-automation.md)
|
||
|
||
> **Merge-Regel:** Kein Merge in `main` ohne 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/`
|
||
|
||
- [x] `__tests__/screens/` Verzeichnisstruktur anlegen (`masterdata/`, `production/`)
|
||
- [x] `SupplierForm.test.tsx` – TC-SUP-01 (Pflichtfelder), TC-SUP-02, TC-SUP-03 (leerer Name)
|
||
- [x] `CategoryForm.test.tsx` – TC-CAT-01 (Happy Path), TC-CAT-04 (Duplikat), TC-CAT-06 (leerer Name)
|
||
- [x] `SupplierList.test.tsx` – TC-SUP-06 (Filter/Suche)
|
||
- [x] Bestehende 4 Tests (`ConfirmDialog`, `ErrorDisplay`, `SuccessDisplay`, `useRoles`) als Vorlage prüfen
|
||
- [x] 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.json` finalisieren (Abhängigkeiten prüfen, ggf. pnpm workspace eintragen)
|
||
- [ ] `web-ui/playwright.config.ts` validieren und anpassen
|
||
- [ ] `web-ui/fixtures/auth.fixture.ts` implementieren und testen
|
||
- [ ] `web-ui/fixtures/seed.fixture.ts` implementieren (DB-Reset-Strategie klären)
|
||
- [ ] `web-ui/helpers/api-client.ts` typisiert implementieren
|
||
- [ ] Backend `Dockerfile` erstellen (test-Profil, mit Seed-Daten)
|
||
- [ ] `docker-compose.e2e.yml` validieren (DB → Backend → e2e-runner Healthchecks)
|
||
- [ ] `web-ui/Dockerfile` validieren
|
||
- [ ] 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-e2e` Recipe im `justfile` ergä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 #65
|
||
- [ ] `tests/api/masterdata/contracts.spec.ts` – TC-B2B, Issue #66
|
||
- [ ] `tests/api/masterdata/articles.spec.ts` – TC-ART, Issue #64
|
||
- [ ] `tests/api/auth/authorization.spec.ts` – TC-AUTH, Issue #67
|
||
- [ ] `tests/api/production/orders.spec.ts` – US-P13–P17, Issues #38–#42
|
||
- [ ] `tests/api/production/batches.spec.ts` – US-P09–P12, Issues #33–#36
|
||
- [ ] `tests/api/production/recipes.spec.ts` – US-P02–P08, Issues #26–#32
|
||
- [ ] `tests/api/production/traceability.spec.ts` – US-P18–P19, Issues #43–#44
|
||
- [ ] `tests/api/inventory/stock.spec.ts` – Story 2.x–6.x, Issues #4–#20
|
||
- [ ] `tests/api/inventory/movements.spec.ts`
|
||
- [ ] `tests/api/inventory/reservations.spec.ts`
|
||
- [ ] Test-Generierungs-Skript (`scripts/generate-tests-from-issue.ts`) finalisieren
|
||
- [ ] Skript in `justfile` als `just 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.yml` erstellen
|
||
- [ ] Trigger: Push auf `main`, PRs gegen `main`
|
||
- [ ] 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/web` ausgebaut ist. Platzhalter bereits vorhanden.
|
||
|
||
- [ ] Browser-Projekt in `playwright.config.ts` aktivieren (`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 |
|