summaryrefslogtreecommitdiff
path: root/internal/lsp/gotest_append_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/lsp/gotest_append_test.go')
-rw-r--r--internal/lsp/gotest_append_test.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/internal/lsp/gotest_append_test.go b/internal/lsp/gotest_append_test.go
new file mode 100644
index 0000000..4fff684
--- /dev/null
+++ b/internal/lsp/gotest_append_test.go
@@ -0,0 +1,28 @@
+package lsp
+
+import (
+ "os"
+ "path/filepath"
+ "strings"
+ "testing"
+)
+
+func TestResolveGoTest_AppendsToExisting(t *testing.T) {
+ s := newTestServer()
+ dir := t.TempDir()
+ src := filepath.Join(dir, "m.go")
+ uri := "file://" + src
+ s.setDocument(uri, "package m\n\nfunc F(){}\n")
+ // Create existing test file
+ testPath := filepath.Join(dir, "m_test.go")
+ if err := os.WriteFile(testPath, []byte("package m\n\nimport \"testing\"\n\n"), 0o644); err != nil { t.Fatal(err) }
+ // LLM path to increase generateGoTestFunction coverage
+ s.llmClient = fakeLLM{resp: "func TestF(t *testing.T) {}"}
+ we, testURI, jump, ok := s.resolveGoTest(uri, Position{Line:2})
+ if !ok || len(we.Changes) == 0 { t.Fatalf("expected append edit") }
+ if !strings.HasSuffix(testURI, "_test.go") { t.Fatalf("unexpected uri: %s", testURI) }
+ edits := we.Changes[testURI]
+ if len(edits) != 1 || !strings.Contains(edits[0].NewText, "TestF") { t.Fatalf("expected append with TestF") }
+ if jump.Start.Line < 0 { t.Fatalf("expected non-negative jump line") }
+}
+