From 04f290dbeeee8a6fcbc70fed253a968336bcb2ab Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 6 Sep 2025 13:19:01 +0300 Subject: more tests --- internal/hexailsp/run_more_test.go | 42 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 internal/hexailsp/run_more_test.go (limited to 'internal/hexailsp') 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") + } +} -- cgit v1.2.3