package config import ( "os" "path/filepath" "testing" ) func TestLoadPrefersEnvLLMAPIKey(t *testing.T) { t.Setenv("LLM_API_KEY", "env-priority-key") configPath := writeTestConfig(t, ` llm: provider: ark api_key: "config-file-key" `) cfg, err := Load(configPath) if err != nil { t.Fatalf("Load() error = %v", err) } if cfg.LLM.APIKey != "env-priority-key" { t.Fatalf("expected env api key, got %q", cfg.LLM.APIKey) } } func TestLoadFallsBackToConfigLLMAPIKey(t *testing.T) { t.Setenv("LLM_API_KEY", "") configPath := writeTestConfig(t, ` llm: provider: ark api_key: "config-file-key" `) cfg, err := Load(configPath) if err != nil { t.Fatalf("Load() error = %v", err) } if cfg.LLM.APIKey != "config-file-key" { t.Fatalf("expected config api key, got %q", cfg.LLM.APIKey) } } func writeTestConfig(t *testing.T, body string) string { t.Helper() dir := t.TempDir() path := filepath.Join(dir, "config.yaml") if err := os.WriteFile(path, []byte(body), 0o600); err != nil { t.Fatalf("write config: %v", err) } return path }