5759c1862e
M0-M7 已完成:核心网关(身份/RBAC/TOTP/OIDC/SAML/Provider/配额/路由/内容策略/审计/定价)+ 资源市场(MCP/Skills/数字员工)。 含 22 个 PostgreSQL 迁移、管理端/门户端前端源码、OpenAPI 契约、部署 compose。 Co-Authored-By: Claude <noreply@anthropic.com>
37 lines
1.0 KiB
Go
37 lines
1.0 KiB
Go
package controlplane
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
)
|
|
|
|
func TestDecodeModelsDeduplicatesAndRetainsMetadata(t *testing.T) {
|
|
models, err := decodeModels([]byte(`{
|
|
"object":"list",
|
|
"data":[
|
|
{"id":"gpt-5","owned_by":"openai","context_window":400000},
|
|
{"id":"gpt-5","owned_by":"duplicate"},
|
|
{"id":"text-embedding-3-small","owned_by":"openai"}
|
|
]
|
|
}`))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if len(models) != 2 || models[0].ProviderModelID != "gpt-5" || models[1].ProviderModelID != "text-embedding-3-small" {
|
|
t.Fatalf("unexpected models: %#v", models)
|
|
}
|
|
var metadata map[string]any
|
|
if err := json.Unmarshal(models[0].Metadata, &metadata); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if metadata["context_window"] != float64(400000) {
|
|
t.Fatalf("metadata was not retained: %#v", metadata)
|
|
}
|
|
}
|
|
|
|
func TestDecodeModelsRejectsMissingID(t *testing.T) {
|
|
if _, err := decodeModels([]byte(`{"data":[{"owned_by":"openai"}]}`)); err == nil {
|
|
t.Fatal("expected missing model id to be rejected")
|
|
}
|
|
}
|