summaryrefslogtreecommitdiff
path: root/internal/hexailsp/run_more_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/hexailsp/run_more_test.go
parent5e966f50111adf6e2cb2683fe588f6fe033fa931 (diff)
more tests
Diffstat (limited to 'internal/hexailsp/run_more_test.go')
-rw-r--r--internal/hexailsp/run_more_test.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/internal/hexailsp/run_more_test.go b/internal/hexailsp/run_more_test.go
new file mode 100644
index 0000000..01baa96
--- /dev/null
+++ b/internal/hexailsp/run_more_test.go
@@ -0,0 +1,42 @@
+package hexailsp
+
+import (
+ "bytes"
+ "io"
+ "log"
+ "testing"
+
+ "codeberg.org/snonux/hexai/internal/appconfig"
+ "codeberg.org/snonux/hexai/internal/lsp"
+)
+
+type recRunner struct{ ran bool }
+func (r *recRunner) Run() error { r.ran = true; return nil }
+
+func TestRunWithFactory_BuildsOptionsAndClient(t *testing.T) {
+ var captured lsp.ServerOptions
+ factory := func(r io.Reader, w io.Writer, logger *log.Logger, opts lsp.ServerOptions) ServerRunner {
+ captured = opts
+ return &recRunner{}
+ }
+ var in, out bytes.Buffer
+ logger := log.New(&out, "", 0)
+ cfg := appconfig.Load(logger)
+ // Use ollama to avoid API keys
+ cfg.Provider = "ollama"
+ cfg.MaxTokens = 123
+ cfg.PromptCodeActionRewriteSystem = "RSYS"
+ cfg.PromptCodeActionRewriteUser = "RUSER"
+ if err := RunWithFactory("", &in, &out, logger, cfg, nil, factory); err != nil {
+ t.Fatalf("RunWithFactory error: %v", err)
+ }
+ if captured.MaxTokens != 123 {
+ t.Fatalf("opts not applied: %+v", captured)
+ }
+ if captured.PromptRewriteSystem != "RSYS" || captured.PromptRewriteUser != "RUSER" {
+ t.Fatalf("prompts not mapped: %+v", captured)
+ }
+ if captured.Client == nil {
+ t.Fatalf("expected client to be constructed")
+ }
+}