package llm import ( "context" "os" "path/filepath" "testing" "gitea.maximumdirect.net/eric/audita/v3/internal/core/config" ck "go.maximumdirect.net/configkit" ) func TestConfiguredSecretsIncludesUnselectedBackends(t *testing.T) { var empty *Runtime if empty.ConfiguredSecrets(context.Background()) != nil { t.Fatal("nil runtime has secrets") } t.Setenv("SELECTED_KEY", "selected-secret") t.Setenv("OTHER_KEY", "unselected-secret") t.Setenv("UNRELATED_KEY", "unrelated-secret") dir := t.TempDir() for name, data := range map[string]string{ "config.yml": "version: 3\n", "prompts.yml": "backends:\n - id: selected\n endpoint: https://selected.invalid/v1\n api_key_env: SELECTED_KEY\n - id: other\n endpoint: https://other.invalid/v1\n api_key_env: OTHER_KEY\nprofiles:\n - id: base\n backend: selected\n model: example\n", } { if err := os.WriteFile(filepath.Join(dir, name), []byte(data), 0600); err != nil { t.Fatal(err) } } loaded, err := config.Load(ck.Input{Source: ck.File(filepath.Join(dir, "config.yml"))}, "") if err != nil { t.Fatal(err) } runtime, err := NewRuntime(context.Background(), loaded, nil) if err != nil { t.Fatal(err) } seen := map[string]bool{} for _, value := range runtime.ConfiguredSecrets(context.Background()) { seen[value] = true } if len(seen) != 2 || !seen["selected-secret"] || !seen["unselected-secret"] { t.Fatalf("unexpected resolved backend secrets: %v", seen) } }