diff options
Diffstat (limited to 'internal/config/config_test.go')
| -rw-r--r-- | internal/config/config_test.go | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/internal/config/config_test.go b/internal/config/config_test.go index 0d47ca0..6991354 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -165,3 +165,46 @@ func TestLocalModel_UseForElaborate_ExplicitTrue(t *testing.T) { t.Error("explicit true should opt in") } } + +func TestProvidersConfig_TOMLRoundTrip(t *testing.T) { + dir := t.TempDir() + path := filepath.Join(dir, "config.toml") + toml := ` +[providers.groq] +endpoint = "https://api.groq.com/openai/v1" +api_key = "gsk_abc" +default_model = "llama-3.3-70b-versatile" +timeout_seconds = 30 + +[providers.anthropic] +api_key = "sk-ant-xyz" +default_model = "claude-sonnet-4-5" +` + if err := os.WriteFile(path, []byte(toml), 0600); err != nil { + t.Fatal(err) + } + t.Setenv("HOME", dir) + + cfg, err := LoadFile(path) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if len(cfg.Providers) != 2 { + t.Fatalf("expected 2 providers, got %d: %+v", len(cfg.Providers), cfg.Providers) + } + groq, ok := cfg.Providers["groq"] + if !ok { + t.Fatal("expected [providers.groq] table") + } + if groq.Endpoint != "https://api.groq.com/openai/v1" || groq.APIKey != "gsk_abc" || + groq.DefaultModel != "llama-3.3-70b-versatile" || groq.TimeoutSeconds != 30 { + t.Errorf("groq provider config: %+v", groq) + } + anthropic, ok := cfg.Providers["anthropic"] + if !ok { + t.Fatal("expected [providers.anthropic] table") + } + if anthropic.Endpoint != "" || anthropic.APIKey != "sk-ant-xyz" || anthropic.DefaultModel != "claude-sonnet-4-5" { + t.Errorf("anthropic provider config: %+v", anthropic) + } +} |
