From a8dc0d88701c4ffcb33fac8250976cbd8bea6d6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Thu, 24 Sep 2026 17:51:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E5=AE=9A=E4=BB=B7=E7=94=A8?= =?UTF-8?q?=E4=BE=8B=E6=94=B9=E9=94=AE=E5=89=8D=E5=85=88=E6=96=AD=E8=A8=80?= =?UTF-8?q?=E7=9B=AE=E6=A0=87=E9=94=AE=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - server-rs/crates/api-server/src/app.rs:改默认定价 fixture 时先用 pointer_mut 断言目标键存在再赋值,不再依赖 Value::index_mut 的隐式 panic,键名或版本号漂移时报错能指出是哪一层对不上 --- server-rs/crates/api-server/src/app.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/server-rs/crates/api-server/src/app.rs b/server-rs/crates/api-server/src/app.rs index 27b0752a4..fd439acc6 100644 --- a/server-rs/crates/api-server/src/app.rs +++ b/server-rs/crates/api-server/src/app.rs @@ -6235,8 +6235,16 @@ mod tests { .expect("后台定价必须返回版本"); let mut model3d = before["model3d"].clone(); assert!(!model3d.is_null(), "默认定价必须带 3D 两段"); - model3d["textToModelPricing"]["addOnPrices"]["quadMesh"] = Value::Number(9.into()); - model3d["imageToModelPricing"]["versionPrices"]["P2-20260801"]["texture"] = + // 先按路径读到目标键再改:`Value::index_mut` 在键缺失时直接 panic,默认定价 + // 一旦换版本号或重命名键,只会看到一个没有上下文的 panic。先断言存在, + // fixture 漂移时就能看清是哪一层对不上。 + *model3d + .pointer_mut("/textToModelPricing/addOnPrices/quadMesh") + .expect("默认定价必须带 textToModelPricing.addOnPrices.quadMesh") = + Value::Number(9.into()); + *model3d + .pointer_mut("/imageToModelPricing/versionPrices/P2-20260801/texture") + .expect("默认定价必须带 imageToModelPricing.versionPrices.P2-20260801.texture") = Value::Number(99.into()); let response = save_admin_editor_generation_pricing(