diff --git a/src-tauri/src/commands/onboarding.rs b/src-tauri/src/commands/onboarding.rs index be9810c..b865e8d 100644 --- a/src-tauri/src/commands/onboarding.rs +++ b/src-tauri/src/commands/onboarding.rs @@ -459,8 +459,15 @@ mod tests { assert_eq!(agents_r.action, "skipped"); // 态二(旧版本):把版本改旧 + 块外加用户内容 → updated,块升级、用户内容保留 + // 版本号从模板动态取,避免模板升版时测试跟着改(曾因硬编码 1.2.0 断裂) + let tpl_ver = extract_managed_block(TMPL_AGENTS) + .and_then(block_version) + .expect("模板必须带版本标记"); let old = agents - .replace("version=\"1.2.0\"", "version=\"1.0.0\"") + .replace( + &format!("version=\"{tpl_ver}\""), + "version=\"1.0.0\"", + ) .replace("## 项目概况", "## 项目概况 我的项目说明") @@ -473,7 +480,10 @@ mod tests { let agents_r = r3.iter().find(|t| t.name == "AGENTS.md").unwrap(); assert_eq!(agents_r.action, "updated"); let upgraded = std::fs::read_to_string(base.join("AGENTS.md")).unwrap(); - assert!(upgraded.contains("version=\"1.2.0\""), "块应升级到模板版本"); + assert!( + upgraded.contains(&format!("version=\"{tpl_ver}\"")), + "块应升级到模板版本" + ); assert!(upgraded.contains("我的项目说明"), "块外用户内容(前)须保留"); assert!(upgraded.contains("用户自加的章节"), "块外用户内容(后)须保留"); assert_eq!(upgraded.matches(MANAGED_START).count(), 1, "只有一个管理块");