测试(AGC模型): 补齐裸目录响应兼容用例
- 新增 legacy_raw_catalog_payload_defaults_optional_fields:覆盖无 ok 信封、缺少 agentMode/protocol/unavailableModels 的旧裸目录响应 - 断言缺省按 Codex + OpenAI Responses + 空不可用桶兜底,锁定既有兼容行为
This commit is contained in:
@@ -290,6 +290,32 @@ mod tests {
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn legacy_raw_catalog_payload_defaults_optional_fields() {
|
||||
// 旧 dev 代理 / 本地 fixture 直接返回裸目录(没有 `ok` 信封),且缺少
|
||||
// `agentMode` / `protocol` / `unavailableModels`:必须仍能解析,并按 Codex +
|
||||
// OpenAI Responses + 空不可用桶兼容。
|
||||
let body = serde_json::json!({
|
||||
"defaultModelId": "quality",
|
||||
"models": [{ "id": "quality", "displayName": "高质量" }],
|
||||
"revision": 9
|
||||
})
|
||||
.to_string();
|
||||
|
||||
let catalog = parse_catalog_payload(body.as_bytes()).expect("raw catalog should parse");
|
||||
assert_eq!(catalog.default_model_id, "quality");
|
||||
assert_eq!(catalog.revision, 9);
|
||||
assert!(catalog.unavailable_models.is_empty());
|
||||
assert_eq!(
|
||||
catalog.models[0].agent_mode,
|
||||
shared_contracts::llm::AgcAgentMode::Codex
|
||||
);
|
||||
assert_eq!(
|
||||
catalog.models[0].protocol,
|
||||
shared_contracts::llm::AgcModelProtocol::OpenAiResponses
|
||||
);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn official_catalog_fails_closed_on_http_error_without_accepting_error_as_data() {
|
||||
let listener = TcpListener::bind("127.0.0.1:0").expect("bind fixture");
|
||||
|
||||
Reference in New Issue
Block a user