From d8784c58b9a8f11eea2b54680219445ce6925316 Mon Sep 17 00:00:00 2001 From: suzmii Date: Sat, 29 Aug 2026 17:07:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=90=8E=E5=8F=B0=E7=B2=BE?= =?UTF-8?q?=E9=80=89=E7=B4=A0=E6=9D=90=E5=A5=91=E7=BA=A6=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=BC=96=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 补齐精选素材 payload 测试初始化新增来源字段。 - 固化来源字段 camelCase 序列化与 snake_case 不泄漏断言。 --- .../crates/shared-contracts/src/admin.rs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/server-rs/crates/shared-contracts/src/admin.rs b/server-rs/crates/shared-contracts/src/admin.rs index 513cff7aa..ab8c690c9 100644 --- a/server-rs/crates/shared-contracts/src/admin.rs +++ b/server-rs/crates/shared-contracts/src/admin.rs @@ -1122,6 +1122,11 @@ mod tests { model: None, provider: None, task_id: None, + source_resource_id: Some("source-resource-1".to_string()), + source_image_src: Some("/generated-character-drafts/editor/source.png".to_string()), + source_object_key: Some("generated-character-drafts/editor/source.png".to_string()), + source_asset_object_id: Some("source-asset-object-1".to_string()), + source_label: Some("来源素材".to_string()), asset_kind: Some("character".to_string()), generation_inputs: None, thumbnail_src: Some("/generated-character-drafts/editor/spec-thumb.png".to_string()), @@ -1168,6 +1173,17 @@ mod tests { value["thumbnailSrc"], json!("/generated-character-drafts/editor/spec-thumb.png") ); + assert_eq!(value["sourceResourceId"], json!("source-resource-1")); + assert_eq!( + value["sourceImageSrc"], + json!("/generated-character-drafts/editor/source.png") + ); + assert_eq!( + value["sourceObjectKey"], + json!("generated-character-drafts/editor/source.png") + ); + assert_eq!(value["sourceAssetObjectId"], json!("source-asset-object-1")); + assert_eq!(value["sourceLabel"], json!("来源素材")); assert_eq!( value["imageSequenceFrames"].as_array().map(Vec::len), Some(2) @@ -1176,6 +1192,11 @@ mod tests { assert!(value.get("author_display_name").is_none()); assert!(value.get("author_public_user_code").is_none()); assert!(value.get("thumbnail_src").is_none()); + assert!(value.get("source_resource_id").is_none()); + assert!(value.get("source_image_src").is_none()); + assert!(value.get("source_object_key").is_none()); + assert!(value.get("source_asset_object_id").is_none()); + assert!(value.get("source_label").is_none()); assert!(value.get("image_sequence_frames").is_none()); assert!(value.get("image_sequence_duration_ms").is_none()); }