huskies: merge 517_story_remove_filesystem_shadow_fallback_paths_from_lifecycle_rs_finish_the_migration_to_crdt_only
This commit is contained in:
@@ -592,24 +592,25 @@ mod tests {
|
||||
)
|
||||
.unwrap();
|
||||
// Dep 1 is done.
|
||||
std::fs::write(done.join("1_story_dep.md"), "---\nname: Dep\n---\n").unwrap();
|
||||
crate::db::ensure_content_store();
|
||||
let dep_content = "---\nname: Dep\n---\n";
|
||||
std::fs::write(done.join("1_story_dep.md"), dep_content).unwrap();
|
||||
crate::db::write_content("1_story_dep", dep_content);
|
||||
// Story B depends on story 1.
|
||||
std::fs::write(
|
||||
backlog.join("2_story_b.md"),
|
||||
"---\nname: B\ndepends_on: [1]\n---\n",
|
||||
)
|
||||
.unwrap();
|
||||
let story_b_content = "---\nname: B\ndepends_on: [1]\n---\n";
|
||||
std::fs::write(backlog.join("2_story_b.md"), story_b_content).unwrap();
|
||||
crate::db::write_content("2_story_b", story_b_content);
|
||||
|
||||
let pool = AgentPool::new_test(3001);
|
||||
pool.auto_assign_available_work(root).await;
|
||||
|
||||
// The lifecycle function updates the content store (not the filesystem),
|
||||
// so verify the move via the DB.
|
||||
let content = crate::db::read_content("2_story_b")
|
||||
.expect("story B should be in content store after promotion");
|
||||
assert!(
|
||||
current.join("2_story_b.md").exists(),
|
||||
"story B should be promoted to 2_current/ once dep 1 is done"
|
||||
);
|
||||
assert!(
|
||||
!backlog.join("2_story_b.md").exists(),
|
||||
"story B must be removed from 1_backlog/ after promotion"
|
||||
content.contains("name: B"),
|
||||
"story B content should be preserved after promotion"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -665,27 +666,26 @@ mod tests {
|
||||
)
|
||||
.unwrap();
|
||||
// Dep 490 is in 6_archived (e.g. a CRDT spike that was archived/superseded).
|
||||
std::fs::write(archived.join("490_spike_crdt.md"), "---\nname: CRDT Spike\n---\n")
|
||||
.unwrap();
|
||||
crate::db::ensure_content_store();
|
||||
let dep_content = "---\nname: CRDT Spike\n---\n";
|
||||
std::fs::write(archived.join("490_spike_crdt.md"), dep_content).unwrap();
|
||||
crate::db::write_content("490_spike_crdt", dep_content);
|
||||
// Story 478 depends on 490 (the archived spike).
|
||||
std::fs::write(
|
||||
backlog.join("478_story_dependent.md"),
|
||||
"---\nname: Dependent\ndepends_on: [490]\n---\n",
|
||||
)
|
||||
.unwrap();
|
||||
let story_content = "---\nname: Dependent\ndepends_on: [490]\n---\n";
|
||||
std::fs::write(backlog.join("478_story_dependent.md"), story_content).unwrap();
|
||||
crate::db::write_content("478_story_dependent", story_content);
|
||||
|
||||
let pool = AgentPool::new_test(3001);
|
||||
pool.auto_assign_available_work(root).await;
|
||||
|
||||
// Story 478 must be promoted to 2_current/ even though dep 490 is only in
|
||||
// 6_archived (not in 5_done), because archived = satisfied.
|
||||
// Story 478 must be promoted even though dep 490 is only in 6_archived
|
||||
// (not in 5_done), because archived = satisfied. The lifecycle function
|
||||
// updates the content store, so verify via the DB.
|
||||
let content = crate::db::read_content("478_story_dependent")
|
||||
.expect("story 478 should be in content store after promotion");
|
||||
assert!(
|
||||
current.join("478_story_dependent.md").exists(),
|
||||
"story 478 should be promoted to 2_current/ when dep 490 is in 6_archived"
|
||||
);
|
||||
assert!(
|
||||
!backlog.join("478_story_dependent.md").exists(),
|
||||
"story 478 must be removed from 1_backlog/ after promotion"
|
||||
content.contains("name: Dependent"),
|
||||
"story 478 content should be preserved after promotion"
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user