test(onboarding): 补 git-workflow 版本升级场景 + 修复断言版本硬编码
三态测试新增:v1.2.0 存量项目重跑后 git-workflow 块升至 1.3.0, 块外用户内容保留;修复 AGENTS 版本断言从硬编码 1.2.0 改为动态提取。 Rules-Applied: R07,R13
This commit is contained in:
parent
428bb02a90
commit
8b85f49234
@ -444,8 +444,9 @@ mod tests {
|
||||
assert_eq!(agents_r.action, "skipped");
|
||||
|
||||
// 态二(旧版本):把版本改旧 + 块外加用户内容 → updated,块升级、用户内容保留
|
||||
let agents_tpl_ver = extract_managed_block(TMPL_AGENTS).and_then(block_version).unwrap();
|
||||
let old = agents
|
||||
.replace("version=\"1.2.0\"", "version=\"1.0.0\"")
|
||||
.replacen(&format!("version=\"{agents_tpl_ver}\""), "version=\"1.0.0\"", 1)
|
||||
.replace("## 项目概况", "## 项目概况
|
||||
|
||||
我的项目说明")
|
||||
@ -458,11 +459,29 @@ 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=\"{agents_tpl_ver}\"")), "块应升级到模板版本");
|
||||
assert!(upgraded.contains("我的项目说明"), "块外用户内容(前)须保留");
|
||||
assert!(upgraded.contains("用户自加的章节"), "块外用户内容(后)须保留");
|
||||
assert_eq!(upgraded.matches(MANAGED_START).count(), 1, "只有一个管理块");
|
||||
|
||||
// git-workflow 版本升级验证:v1.2.0 存量项目重跑后块升级,块外内容不动
|
||||
let gw_tpl_ver = extract_managed_block(TMPL_GIT_WORKFLOW).and_then(block_version).unwrap();
|
||||
let gw_path = base.join("docs/ai-context/git-workflow.md");
|
||||
let gw_content = std::fs::read_to_string(&gw_path).unwrap();
|
||||
// 把写入的最新版本改旧,模拟存量 1.2.0 项目
|
||||
let gw_old = gw_content
|
||||
.replacen(&format!("version=\"{gw_tpl_ver}\""), "version=\"1.2.0\"", 1)
|
||||
+ "\n## 项目自加章节\n旧有内容\n";
|
||||
std::fs::write(&gw_path, &gw_old).unwrap();
|
||||
let r_gw = dispatch_templates(pp);
|
||||
let gw_r = r_gw.iter().find(|t| t.name == "docs/ai-context/git-workflow.md").unwrap();
|
||||
assert_eq!(gw_r.action, "updated", "git-workflow 旧版本应触发 updated");
|
||||
let gw_upgraded = std::fs::read_to_string(&gw_path).unwrap();
|
||||
assert!(gw_upgraded.contains(&format!("version=\"{gw_tpl_ver}\"")), "git-workflow 块应升级到模板版本");
|
||||
assert!(gw_upgraded.contains("功能性改动"), "新分支策略关键词应出现在升级后文件中");
|
||||
assert!(gw_upgraded.contains("项目自加章节"), "块外用户内容须保留");
|
||||
assert_eq!(gw_upgraded.matches(MANAGED_START).count(), 1, "只有一个管理块");
|
||||
|
||||
// 态三:存量文件无标记 → appended,原内容保留在上方
|
||||
std::fs::write(base.join("AGENTS.md"), "# 手写的 AGENTS
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user