3D 任务参数用例改为断言真实主张

- server-rs/crates/api-server/src/tripo3d/job.rs:把 job_request_rejects_payload_without_fingerprint_stripping_support 改名为 job_request_stays_strict_after_stripping_platform_fingerprint 并补断言——带指纹 + 其它未知字段的合法 payload 仍必须被拒(摘下平台字段不等于放宽严格解析);原用例名声称验证指纹摘除,实际只断言了「缺字段的 payload 被拒」和「未知 job kind 被拒」

验证:cargo test -p api-server --locked job_request(2 个用例全绿)、npm run check:rustfmt
This commit is contained in:
2026-09-22 13:40:13 +08:00
parent 48a5bf06d0
commit 14740e0ef6
+25 -1
View File
@@ -157,7 +157,31 @@ mod tests {
}
#[test]
fn job_request_rejects_payload_without_fingerprint_stripping_support() {
fn job_request_stays_strict_after_stripping_platform_fingerprint() {
// 摘指纹只摘平台注入的那一个字段:其余未知字段仍走 deny_unknown_fields。
let payload_with_unknown_field = json!({
"generation": {
"prompt": "一只木箱",
"model": "v3.1-20260211",
"texture": true,
"pbr": true,
"textureQuality": "standard",
"geometryQuality": "standard",
"quad": false,
"smartLowPoly": false,
"generateParts": false
},
"target": { "kind": "projectResource", "projectId": "project-1" },
"_externalApiRequestFingerprint": "fingerprint-1",
"unexpectedField": true
})
.to_string();
assert!(
parse_model3d_job_request(MODEL3D_TEXT_TO_MODEL_JOB_KIND, &payload_with_unknown_field)
.is_err()
);
// 缺 generation / target 的 payload 与未知 job kind 都必须被拒。
let payload = json!({ "prompt": "一只木箱" }).to_string();
assert!(parse_model3d_job_request(MODEL3D_TEXT_TO_MODEL_JOB_KIND, &payload).is_err());
assert!(parse_model3d_job_request("unknown_job_kind", &payload).is_err());