Files
test-samurai.nvim/AGENTS.md

3.0 KiB
Raw Blame History

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 neue Hilfe-Ansicht 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