# test-automation

Automatisierte UI/E2E-Tests für Effigenix ERP.

> **WICHTIG – Branch-Schutz:**
> Alle Arbeiten an diesem Ordner finden ausschliesslich im Branch `experiment/test-automation` statt.
> **Ein Merge in `main` darf NUR mit ausdrücklicher menschlicher Bestätigung erfolgen.**
> Kein automatischer Merge, kein Auto-Squash, kein Force-Push auf `main`.

---

## Struktur

```
test-automation/
├── README.md                  # Diese Datei
├── TASKS.md                   # Phasen & Aufgaben (Tracking)
├── docs/
│   └── ui-testing-automation.md   # Technisches Konzept
├── web-ui/                    # Playwright E2E-Tests (Web + API)
│   ├── package.json
│   ├── playwright.config.ts
│   ├── Dockerfile
│   ├── tests/
│   │   ├── api/               # API-Level-Tests (kein Browser)
│   │   └── web/               # Browser-UI-Tests (wächst mit Web-App)
│   ├── fixtures/              # Auth- und Seed-Fixtures
│   └── helpers/               # Typisierter API-Wrapper
├── tui/                       # TUI-Tests (vitest + ink-testing-library)
│   └── README.md
└── docker-compose.e2e.yml     # Vollständiges E2E-Stack (DB + Backend + Runner)
```

## Quickstart

```bash
# Alle E2E-Tests per Docker starten
docker compose -f test-automation/docker-compose.e2e.yml up --abort-on-container-exit

# Nur bestimmte Tests
docker compose -f test-automation/docker-compose.e2e.yml run e2e-runner --grep "TC-SUP"

# HTML-Report anzeigen (nach Test-Run)
pnpm --filter @effigenix/e2e exec playwright show-report e2e-results
```

## Framework-Übersicht

| Bereich | Tool | Zweck |
|---|---|---|
| API E2E | Playwright (request context) | Backend-Akzeptanzkriterien validieren |
| Web UI | Playwright (Chromium) | Browser-Tests sobald Web-App ausgebaut |
| TUI | vitest + ink-testing-library | Terminal-UI Komponenten-Tests |

Detailliertes technisches Konzept: [`docs/ui-testing-automation.md`](./docs/ui-testing-automation.md)
