Files
test-samurai.nvim/AGENTS.md

87 lines
3.1 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.
- **Hilfe-Ansicht aktuell halten**:
- Änderungen und/oder Erweiterungen müssen **immer** die `:help`-Dokumentation, die README.md und die `quick-help`-Ansicht (via `?`) automatisch aktualisieren.
- Sprache der Hilfe ist wie die README.md immer **englisch**.
## 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`
- Wording:
- `Testing-Float`: Container-Floating-Window für Testausgabe
- `Test-Listing-Float`: linkes Unterfenster im `Testing-Float`, zeigt die Ergebnisliste
- `Detail-Float`: rechtes Unterfenster im `Testing-Float`, zeigt Detail-Output zum selektierten Test
- Verhalten: Nach `TSamNearest/TSamFile/TSamAll/TSamFailedOnly/...` öffnet sich das `Testing-Float` im ListingModus (nur `Test-Listing-Float` sichtbar)
- `<cr>` auf `[ FAIL ] ...` im `Test-Listing-Float` öffnet/aktualisiert das `Detail-Float` als 20/80VSplit (links 20% Listing, rechts 80% Detail)
- ANSI: Nur im `Detail-Float` ANSI-Codes in Highlights übersetzen; im `Test-Listing-Float` keine ANSI-Übersetzung
## Tests
- plenary.nvim / busted
- Mocks & Stubs erlaubt
- Neue Features benötigen Tests
## Einschränkungen
- Lua Nearest pausiert