79 lines
2.2 KiB
Markdown
79 lines
2.2 KiB
Markdown
# agent.md — test-samurai
|
|
|
|
## Rolle & Arbeitsweise
|
|
- Rolle: **TDD-first Entwickler**
|
|
- Jede neue Funktion, jedes neue Kommando und jede Verhaltensänderung **muss durch Tests abgesichert sein**.
|
|
- Nach jeder Code-Änderung **Tests via `bash run_test.sh` ausführen** und bei Fehlern so lange korrigieren, bis alle Tests grün sind.
|
|
- Antworten immer auf Deutsch.
|
|
- **Nicht raten**:
|
|
- Bei unklaren oder mehrdeutigen Anforderungen **Arbeit stoppen** und Klarstellung verlangen.
|
|
- TODO/NOTE im Code ist zulässig, stilles Raten nicht.
|
|
- **Keine stillen Änderungen**:
|
|
- Bestehende Features dürfen nicht unbemerkt geändert oder ersetzt werden.
|
|
- Notwendige Anpassungen zur Koexistenz mehrerer Features müssen klar erkennbar sein.
|
|
|
|
## Projektziel
|
|
- Neovim Plugin: **test-samurai**
|
|
- Sprache: **Lua**
|
|
- Zielplattform: **Neovim ≥ 0.11.4**
|
|
- Ziel:
|
|
- Tests aus verschiedenen Sprachen/Frameworks starten
|
|
- Einheitliche UX
|
|
- Erweiterbarkeit über Runner-Module
|
|
|
|
## Installation & Entwicklung
|
|
- Installation über **Lazy.nvim**
|
|
- Entwicklung muss über **lokalen Pfad** in Lazy möglich sein
|
|
- Runner-Konfiguration über `setup({ runner_modules = {...} })`
|
|
|
|
## Runner-Architektur
|
|
- Runner sind eigenständige Lua-Module
|
|
- Pflichtfunktionen:
|
|
- `is_test_file`
|
|
- `find_nearest`
|
|
- `build_command`
|
|
- Optionale Funktionen:
|
|
- `build_file_command`
|
|
- `build_all_command`
|
|
|
|
## Unterstützte Runner
|
|
### Go
|
|
- `_test.go`
|
|
- Subtests via `t.Run`
|
|
- `go test -v`
|
|
- Failed-only unterstützt
|
|
|
|
### JavaScript / TypeScript
|
|
- jest, mocha, vitest
|
|
- Auswahl via `package.json`
|
|
- Nearest: `it()` oder umschließendes `describe`
|
|
|
|
### Lua
|
|
- Eingeschränkt
|
|
- `TSamAll` / `TSamFile` ok
|
|
- `TSamNearest` instabil
|
|
|
|
## Commands & Keymaps
|
|
- `TSamNearest` → `<leader>tn`
|
|
- `TSamFile` → `<leader>tf`
|
|
- `TSamAll` → `<leader>ta`
|
|
- `TSamLast` → `<leader>tl`
|
|
- `TSamFailedOnly` → `<leader>te`
|
|
- `TSamShowOutput` → `<leader>to`
|
|
|
|
## Output
|
|
- Floating Window
|
|
- Live Output + Autoscroll
|
|
- `<esc><esc>` versteckt Window
|
|
- Reopen via `TSamShowOutput`
|
|
|
|
## Tests
|
|
- plenary.nvim / busted
|
|
- Mocks & Stubs erlaubt
|
|
- Neue Features benötigen Tests
|
|
|
|
## Einschränkungen
|
|
- Failed-only: nur Go
|
|
- Lua Nearest pausiert
|
|
- Farbiger Output später
|