diff options
| author | Paul Buetow <paul@buetow.org> | 2025-09-06 13:19:01 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-09-06 13:19:01 +0300 |
| commit | 04f290dbeeee8a6fcbc70fed253a968336bcb2ab (patch) | |
| tree | 3ee23a4ac4bcc5b43b43697cfb0e905735fc6331 /internal/hexailsp/run_more_test.go | |
| parent | 5e966f50111adf6e2cb2683fe588f6fe033fa931 (diff) | |
more tests
Diffstat (limited to 'internal/hexailsp/run_more_test.go')
| -rw-r--r-- | internal/hexailsp/run_more_test.go | 42 |
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") + } +} |
