diff options
| author | Paul Buetow <paul@buetow.org> | 2025-09-19 22:56:10 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-09-19 22:56:10 +0300 |
| commit | 1065d7a991d3b5c103bcc986a84867db28cb4720 (patch) | |
| tree | 00824c2b7b7b3016f235205bed9483b638340de6 /internal/appconfig/config_env_model_test.go | |
| parent | 6feda08653a80a7609df2e8b80e98ede15f86a61 (diff) | |
morev0.11.6
Diffstat (limited to 'internal/appconfig/config_env_model_test.go')
| -rw-r--r-- | internal/appconfig/config_env_model_test.go | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/internal/appconfig/config_env_model_test.go b/internal/appconfig/config_env_model_test.go new file mode 100644 index 0000000..2db2bb5 --- /dev/null +++ b/internal/appconfig/config_env_model_test.go @@ -0,0 +1,37 @@ +package appconfig + +import ( + "log" + "os" + "testing" +) + +// Test that HEXAI_MODEL applies to provider model fields and that +// provider-specific envs take precedence when both are set. +func TestEnv_GenericModelOverrideAndPrecedence(t *testing.T) { + t.Setenv("HEXAI_MODEL", "gpt-5-codex") + t.Setenv("HEXAI_PROVIDER", "openai") + // No provider-specific env set yet: HEXAI_MODEL should flow into OpenAIModel + cfg := Load(log.New(os.Stderr, "test ", 0)) + if cfg.OpenAIModel != "gpt-5-codex" { + t.Fatalf("expected OpenAIModel=gpt-5-codex via HEXAI_MODEL, got %q", cfg.OpenAIModel) + } + + // Now set a provider-specific model; it should win over HEXAI_MODEL + t.Setenv("HEXAI_OPENAI_MODEL", "gpt-5-thinking") + cfg2 := Load(log.New(os.Stderr, "test ", 0)) + if cfg2.OpenAIModel != "gpt-5-thinking" { + t.Fatalf("expected OpenAIModel from HEXAI_OPENAI_MODEL to win, got %q", cfg2.OpenAIModel) + } +} + +// Test that HEXAI_MODEL_FORCE overrides provider-specific envs (used by CLI --model). +func TestEnv_ModelForce_OverridesProviderSpecific(t *testing.T) { + t.Setenv("HEXAI_OPENAI_MODEL", "gpt-5-main") + t.Setenv("HEXAI_MODEL_FORCE", "gpt-5-codex") + t.Setenv("HEXAI_PROVIDER", "openai") + cfg := Load(log.New(os.Stderr, "test ", 0)) + if cfg.OpenAIModel != "gpt-5-codex" { + t.Fatalf("expected OpenAIModel forced to gpt-5-codex, got %q", cfg.OpenAIModel) + } +} |
