summaryrefslogtreecommitdiff
path: root/internal/hexaiaction/run_test.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-09-06 13:19:01 +0300
committerPaul Buetow <paul@buetow.org>2025-09-06 13:19:01 +0300
commit04f290dbeeee8a6fcbc70fed253a968336bcb2ab (patch)
tree3ee23a4ac4bcc5b43b43697cfb0e905735fc6331 /internal/hexaiaction/run_test.go
parent5e966f50111adf6e2cb2683fe588f6fe033fa931 (diff)
more tests
Diffstat (limited to 'internal/hexaiaction/run_test.go')
-rw-r--r--internal/hexaiaction/run_test.go51
1 files changed, 51 insertions, 0 deletions
diff --git a/internal/hexaiaction/run_test.go b/internal/hexaiaction/run_test.go
new file mode 100644
index 0000000..87fbfa8
--- /dev/null
+++ b/internal/hexaiaction/run_test.go
@@ -0,0 +1,51 @@
+package hexaiaction
+
+import (
+ "context"
+ "strings"
+ "testing"
+
+ "codeberg.org/snonux/hexai/internal/appconfig"
+ "codeberg.org/snonux/hexai/internal/llm"
+)
+
+type fakeDoer struct{ out string }
+
+func (f fakeDoer) Chat(_ context.Context, _ []llm.Message, _ ...llm.RequestOption) (string, error) {
+ return f.out, nil
+}
+
+func TestExecuteAction_Skip(t *testing.T) {
+ cfg := appconfig.App{}
+ parts := InputParts{Selection: "data"}
+ out, err := executeAction(context.Background(), ActionSkip, parts, cfg, fakeDoer{"IGN"}, nil)
+ if err != nil || out != "data" {
+ t.Fatalf("skip failed: %q %v", out, err)
+ }
+}
+
+func TestExecuteAction_Rewrite_Document_GoTest(t *testing.T) {
+ cfg := appconfig.Load(nil) // defaults
+ // Use fenced output to exercise StripFences
+ client := fakeDoer{"```\nDONE\n```"}
+
+ // rewrite with inline instruction
+ sel := ";change;\ncode"
+ out, err := executeAction(context.Background(), ActionRewrite, InputParts{Selection: sel}, cfg, client, nil)
+ if err != nil || strings.TrimSpace(out) != "DONE" {
+ t.Fatalf("rewrite failed: %q %v", out, err)
+ }
+
+ // document
+ out, err = executeAction(context.Background(), ActionDocument, InputParts{Selection: "code"}, cfg, client, nil)
+ if err != nil || strings.TrimSpace(out) != "DONE" {
+ t.Fatalf("document failed: %q %v", out, err)
+ }
+
+ // go test
+ out, err = executeAction(context.Background(), ActionGoTest, InputParts{Selection: "func A(){}"}, cfg, client, nil)
+ if err != nil || strings.TrimSpace(out) != "DONE" {
+ t.Fatalf("gotest failed: %q %v", out, err)
+ }
+}
+