vibe-proxy/backend/internal/config/is_compat_test.go
2026-08-24 00:10:41 +02:00

57 lines
1.4 KiB
Go

package config
import (
"encoding/json"
"testing"
"gopkg.in/yaml.v3"
)
func TestCodexModelIsCompatConfigDecoding(t *testing.T) {
const yamlConfig = `codex-api-key:
- models:
- name: deepseek-upstream
alias: deepseek-alias
is-compat: true
- name: native-upstream
alias: native-alias
`
const jsonConfig = `{"codex-api-key":[{"models":[{"name":"deepseek-upstream","alias":"deepseek-alias","is-compat":true},{"name":"native-upstream","alias":"native-alias"}]}]}`
for _, testCase := range []struct {
name string
decode func(*Config) error
}{
{
name: "YAML",
decode: func(cfg *Config) error {
return yaml.Unmarshal([]byte(yamlConfig), cfg)
},
},
{
name: "JSON",
decode: func(cfg *Config) error {
return json.Unmarshal([]byte(jsonConfig), cfg)
},
},
} {
t.Run(testCase.name, func(t *testing.T) {
var cfg Config
if errDecode := testCase.decode(&cfg); errDecode != nil {
t.Fatalf("decode error: %v", errDecode)
}
if len(cfg.CodexKey) != 1 || len(cfg.CodexKey[0].Models) != 2 {
t.Fatalf("unexpected codex-api-key models: %+v", cfg.CodexKey)
}
if !cfg.CodexKey[0].Models[0].IsCompat {
t.Fatalf("Models[0].IsCompat = false, want true")
}
if cfg.CodexKey[0].Models[1].IsCompat {
t.Fatalf("Models[1].IsCompat = true, want default false")
}
if !cfg.CodexKey[0].Models[0].GetIsCompat() {
t.Fatalf("GetIsCompat() = false, want true")
}
})
}
}