# TUI-Tests – Terminal UI

TUI-Tests für `apps/cli` (Ink + React) laufen **nicht** in diesem Ordner, sondern direkt im CLI-Paket:

```
frontend/apps/cli/src/__tests__/
├── shared/          # Bestehend: ConfirmDialog, ErrorDisplay, SuccessDisplay
├── hooks/           # Bestehend: useRoles
└── screens/         # Phase 0 – wird hier ausgebaut
    ├── masterdata/
    │   ├── SupplierForm.test.tsx
    │   ├── SupplierList.test.tsx
    │   └── CategoryForm.test.tsx
    └── production/
        └── RecipeForm.test.tsx
```

## Warum nicht hier?

TUI-Tests nutzen `vitest` + `ink-testing-library` und sind eng am Quellcode der CLI-App.
Sie gehören zum CLI-Paket (`@effigenix/cli`) und laufen mit dem bestehenden Vitest-Setup.
Ein separates Package wäre unnötiger Overhead.

## Tests ausführen

```bash
# Alle TUI-Tests
pnpm --filter @effigenix/cli test

# Mit Watch
pnpm --filter @effigenix/cli test --watch

# Einzelne Spec
pnpm --filter @effigenix/cli test SupplierForm
```

## Abgrenzung

| TUI-Tests | API E2E-Tests (Playwright) |
|---|---|
| "Rendert der Screen korrekt?" | "Funktioniert das Backend?" |
| Validierungsfehler sichtbar? | Akzeptanzkriterien aus Issues |
| Tastatur-Navigation korrekt? | Kein UI-Rendering |
| API-Calls via `vi.mock()` | Echtes Backend via Docker |

Details: [`../docs/ui-testing-automation.md`](../docs/ui-testing-automation.md) Abschnitt 9.

## Zukünftig: Scanner / Tauri

Sollte Tauri-Testing (Appium o.ä.) aufgenommen werden, käme ein `scanner/`-Ordner
auf derselben Ebene wie `web-ui/` und `tui/` hinzu.
