summaryrefslogtreecommitdiff
path: root/internal/editor/editor_test.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-09-07 17:58:32 +0300
committerPaul Buetow <paul@buetow.org>2025-09-07 17:58:32 +0300
commit3246ebcc5246ed357f45ac32234d5cd34922b9f3 (patch)
treec594f2fd2ebc01689574c721f4e85e1065a124c4 /internal/editor/editor_test.go
parent77e41a1018715fa5ac4e6156354710b3b224b4fc (diff)
test+docs: add editor tests; document HEXAI_EDITOR/EDITOR and Custom prompt; seam client in CLI for tests
Diffstat (limited to 'internal/editor/editor_test.go')
-rw-r--r--internal/editor/editor_test.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/internal/editor/editor_test.go b/internal/editor/editor_test.go
new file mode 100644
index 0000000..df6dec7
--- /dev/null
+++ b/internal/editor/editor_test.go
@@ -0,0 +1,39 @@
+package editor
+
+import (
+ "os"
+ "path/filepath"
+ "testing"
+)
+
+func TestResolve_EnvPriority(t *testing.T) {
+ t.Setenv("HEXAI_EDITOR", "ed1")
+ t.Setenv("EDITOR", "ed2")
+ ed, err := Resolve()
+ if err != nil || ed != "ed1" {
+ t.Fatalf("Resolve failed: %v %q", err, ed)
+ }
+ t.Setenv("HEXAI_EDITOR", "")
+ ed, err = Resolve()
+ if err != nil || ed != "ed2" {
+ t.Fatalf("Resolve fallback failed: %v %q", err, ed)
+ }
+}
+
+func TestOpenTempAndEdit_UsesRunEditor(t *testing.T) {
+ old := RunEditor
+ t.Cleanup(func(){ RunEditor = old })
+ // Ensure Resolve() succeeds
+ t.Setenv("HEXAI_EDITOR", "dummy")
+ var capturedPath string
+ RunEditor = func(editor, path string) error {
+ capturedPath = path
+ // simulate user writing content
+ return os.WriteFile(path, []byte("Hello\nWorld\n"), 0o600)
+ }
+ out, err := OpenTempAndEdit([]byte("# Start\n\n"))
+ if err != nil { t.Fatalf("OpenTempAndEdit: %v", err) }
+ if out != "Hello\nWorld" { t.Fatalf("unexpected content: %q", out) }
+ if filepath.Ext(capturedPath) != ".md" { t.Fatalf("expected .md suffix: %s", capturedPath) }
+}
+