summaryrefslogtreecommitdiff
path: root/internal/hexaicli/run_model_override_test.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-09-28 00:20:05 +0300
committerPaul Buetow <paul@buetow.org>2025-09-28 00:20:05 +0300
commit0ac2d186e84f77d73d924e2c0ce975a17c3a8078 (patch)
tree49f3e2def38449544e1d67f047cbcb4aab802658 /internal/hexaicli/run_model_override_test.go
parent51b2621d58633aa5c0f5cc7b64616d70d41acc91 (diff)
Improve multi-provider completion streaming and CLI selector flags
Diffstat (limited to 'internal/hexaicli/run_model_override_test.go')
-rw-r--r--internal/hexaicli/run_model_override_test.go54
1 files changed, 30 insertions, 24 deletions
diff --git a/internal/hexaicli/run_model_override_test.go b/internal/hexaicli/run_model_override_test.go
index 6394bd1..b32b172 100644
--- a/internal/hexaicli/run_model_override_test.go
+++ b/internal/hexaicli/run_model_override_test.go
@@ -1,39 +1,45 @@
package hexaicli
import (
- "bytes"
- "context"
- "strings"
- "testing"
+ "bytes"
+ "context"
+ "strings"
+ "testing"
- "codeberg.org/snonux/hexai/internal/appconfig"
- "codeberg.org/snonux/hexai/internal/llm"
+ "codeberg.org/snonux/hexai/internal/appconfig"
+ "codeberg.org/snonux/hexai/internal/llm"
)
type fakeClientModelEnv struct{ name, model string }
-func (f fakeClientModelEnv) Chat(_ context.Context, _ []llm.Message, _ ...llm.RequestOption) (string, error) { return "ok", nil }
+
+func (f fakeClientModelEnv) Chat(_ context.Context, _ []llm.Message, _ ...llm.RequestOption) (string, error) {
+ return "ok", nil
+}
func (f fakeClientModelEnv) Name() string { return f.name }
func (f fakeClientModelEnv) DefaultModel() string { return f.model }
// Ensure that HEXAI_MODEL overrides config for CLI runs.
func TestRun_ModelEnvOverride_FlowsIntoClient(t *testing.T) {
- t.Setenv("HEXAI_MODEL", "gpt-5-codex")
- t.Setenv("HEXAI_PROVIDER", "openai")
- // Replace client constructor to assert model was overridden
- oldNew := newClientFromApp
- defer func() { newClientFromApp = oldNew }()
+ t.Setenv("XDG_CONFIG_HOME", t.TempDir())
+ t.Setenv("HEXAI_MODEL", "gpt-5-codex")
+ t.Setenv("HEXAI_PROVIDER", "openai")
+ // Replace client constructor to assert model was overridden
+ oldNew := newClientFromApp
+ defer func() { newClientFromApp = oldNew }()
+ var seenModel string
newClientFromApp = func(cfg appconfig.App) (llm.Client, error) {
- if strings.TrimSpace(cfg.OpenAIModel) != "gpt-5-codex" {
- t.Fatalf("expected cfg.OpenAIModel=gpt-5-codex, got %q", cfg.OpenAIModel)
- }
- return fakeClientModelEnv{name: "openai", model: cfg.OpenAIModel}, nil
- }
+ seenModel = strings.TrimSpace(cfg.OpenAIModel)
+ return fakeClientModelEnv{name: "openai", model: cfg.OpenAIModel}, nil
+ }
- var out, errb bytes.Buffer
- if err := Run(context.Background(), []string{"hello"}, strings.NewReader(""), &out, &errb); err != nil {
- t.Fatalf("run error: %v", err)
- }
- if !strings.Contains(errb.String(), "model=gpt-5-codex") {
- t.Fatalf("stderr should print effective model, got: %s", errb.String())
- }
+ var out, errb bytes.Buffer
+ if err := Run(context.Background(), []string{"hello"}, strings.NewReader(""), &out, &errb); err != nil {
+ t.Fatalf("run error: %v", err)
+ }
+ if seenModel != "gpt-5-codex" {
+ t.Fatalf("expected cfg.OpenAIModel=gpt-5-codex, got %q", seenModel)
+ }
+ if !strings.Contains(errb.String(), "model=gpt-5-codex") {
+ t.Fatalf("stderr should print effective model, got: %s", errb.String())
+ }
}