test(onboarding): 版本号从模板动态取,消除硬编码
All checks were successful
Push & PR Check / check (push) Successful in 1m0s

模板升版(1.2.0→1.3.0)暴露测试硬编码版本号——每次升版测试必断。
改为 extract_managed_block + block_version 动态取,升版不再碰测试。
This commit is contained in:
lanrtop 2026-07-06 22:59:24 +09:00
parent 46640783f9
commit 1c44bfe30a

View File

@ -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, "只有一个管理块");