Files
test-samurai.nvim/AGENTS.md

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