internal/config/vertex_openapi_test.go
Rama main · réplica de lectura del repositorio original.
package config_test
import (
"strings"
"testing"
"github.com/router-for-me/CLIProxyAPI/v8/internal/config"
"gopkg.in/yaml.v3"
)
func TestVertexOpenAPIConfigDecoding(t *testing.T) {
for _, layout := range []struct{ name, prefix, indent string }{
{name: "v8", prefix: "api-keys:\n vertex:\n - keys:\n", indent: " "},
{name: "legacy", prefix: "vertex-api-key:\n", indent: " "},
} {
t.Run(layout.name, func(t *testing.T) {
keyConfig := `- api-key: test-key
openapi: true
openapi-location: " global "
models:
- name: partner/model
alias: native-model
openapi: false
- name: gemini-2.5-pro
alias: openapi-model
openapi: true
- name: automatic-model`
raw := layout.prefix + layout.indent + strings.ReplaceAll(keyConfig, "\n", "\n"+layout.indent) + `
oauth:
model-alias:
vertex:
- name: gemini-2.5-pro
alias: public-model
openapi: true
settings:
vertex:
- name: partner/model
openapi: false
`
var cfg config.Config
if errUnmarshal := yaml.Unmarshal([]byte(raw), &cfg); errUnmarshal != nil {
t.Fatal(errUnmarshal)
}
cfg.SanitizeVertexCompatKeys()
cfg.SanitizeOAuthModelAlias()
cfg.SanitizeOAuthSettings()
if len(cfg.VertexCompatAPIKey) != 1 {
t.Fatalf("Vertex key count = %d", len(cfg.VertexCompatAPIKey))
}
entry := cfg.VertexCompatAPIKey[0]
if entry.OpenAPI == nil || !*entry.OpenAPI || entry.OpenAPILocation != "global" {
t.Fatalf("credential settings = %+v", entry)
}
if len(entry.Models) != 3 || entry.Models[0].OpenAPI == nil || *entry.Models[0].OpenAPI || entry.Models[1].OpenAPI == nil || !*entry.Models[1].OpenAPI || entry.Models[2].OpenAPI != nil {
t.Fatalf("model settings = %+v", entry.Models)
}
if setting := cfg.OAuthModelAlias["vertex"][0].OpenAPI; setting == nil || !*setting {
t.Fatalf("OAuth alias setting = %v", setting)
}
if setting := cfg.OAuthSettings["vertex"][0].OpenAPI; setting == nil || *setting {
t.Fatalf("OAuth model setting = %v", setting)
}
})
}
}
func TestSanitizeOAuthOpenAPISettingsClonesOptionalBools(t *testing.T) {
for _, enabled := range []bool{true, false} {
original := enabled
cfg := &config.Config{
OAuthModelAlias: map[string][]config.OAuthModelAlias{" VERTEX ": {{Name: "model", Alias: "alias", OpenAPI: &original}}},
OAuthSettings: map[string][]config.OAuthModelSetting{" VERTEX ": {{Name: "model", OpenAPI: &original}}},
}
cfg.SanitizeOAuthModelAlias()
cfg.SanitizeOAuthSettings()
original = !enabled
for _, setting := range []*bool{cfg.OAuthModelAlias["vertex"][0].OpenAPI, cfg.OAuthSettings["vertex"][0].OpenAPI} {
if setting == nil || *setting != enabled || setting == &original {
t.Fatalf("normalized setting shares or loses the original value: %v", setting)
}
}
}
}