46 lines
1.4 KiB
Go
46 lines
1.4 KiB
Go
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)
|
|
}
|
|
}
|