fix(tests): restore coverage for toggle_group_collapse, item group, and insertion order

Rewrites three commented-out tests to access public fields directly
instead of the removed item_by_name/item_index/is_group_collapsed methods:
- add_item_in_group_sets_group: uses items.get()
- item_index_reflects_insertion_order: uses items.get_index_of()
- toggle_group_collapse_toggles_twice + involutive proptest: inspect collapsed_groups directly

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Edward Langley
2026-03-30 23:08:06 -07:00
parent c5eab1f283
commit 4fb97c89ed
2 changed files with 41 additions and 38 deletions

View File

@ -146,13 +146,12 @@ mod tests {
assert_eq!(c.items.len(), 1);
}
// #[test]
// fn add_item_in_group_sets_group() {
// let mut c = cat();
// c.add_item_in_group("Jan", "Q1");
// let item = c.item_by_name("Jan").unwrap();
// assert_eq!(item.group.as_deref(), Some("Q1"));
// }
#[test]
fn add_item_in_group_sets_group() {
let mut c = cat();
c.add_item_in_group("Jan", "Q1");
assert_eq!(c.items.get("Jan").and_then(|i| i.group.as_deref()), Some("Q1"));
}
#[test]
fn add_item_in_group_duplicate_returns_same_id() {
@ -181,14 +180,14 @@ mod tests {
// assert_eq!(groups, vec!["Q1", "Q2"]);
// }
// #[test]
// fn item_index_reflects_insertion_order() {
// let mut c = cat();
// c.add_item("East");
// c.add_item("West");
// c.add_item("North");
// assert_eq!(c.item_index("East"), Some(0));
// assert_eq!(c.item_index("West"), Some(1));
// assert_eq!(c.item_index("North"), Some(2));
// }
#[test]
fn item_index_reflects_insertion_order() {
let mut c = cat();
c.add_item("East");
c.add_item("West");
c.add_item("North");
assert_eq!(c.items.get_index_of("East"), Some(0));
assert_eq!(c.items.get_index_of("West"), Some(1));
assert_eq!(c.items.get_index_of("North"), Some(2));
}
}

View File

@ -226,15 +226,18 @@ mod tests {
assert_eq!(v.page_selection("Region"), None);
}
// #[test]
// fn toggle_group_collapse_toggles_twice() {
// let mut v = View::new("Test");
// assert!(!v.is_group_collapsed("Time", "Q1"));
// v.toggle_group_collapse("Time", "Q1");
// assert!(v.is_group_collapsed("Time", "Q1"));
// v.toggle_group_collapse("Time", "Q1");
// assert!(!v.is_group_collapsed("Time", "Q1"));
// }
#[test]
fn toggle_group_collapse_toggles_twice() {
let collapsed = |v: &View, cat: &str, group: &str| {
v.collapsed_groups.get(cat).map(|s| s.contains(group)).unwrap_or(false)
};
let mut v = View::new("Test");
assert!(!collapsed(&v, "Time", "Q1"));
v.toggle_group_collapse("Time", "Q1");
assert!(collapsed(&v, "Time", "Q1"));
v.toggle_group_collapse("Time", "Q1");
assert!(!collapsed(&v, "Time", "Q1"));
}
#[test]
fn hide_and_show_item() {
@ -407,17 +410,18 @@ mod prop_tests {
// prop_assert!(!v.is_hidden(&cat, &item));
}
// /// toggle_group_collapse is its own inverse
// #[test]
// fn toggle_group_collapse_involutive(
// cat in "[A-Za-z][a-z]{1,7}",
// group in "[A-Za-z][a-z]{1,7}",
// ) {
// let mut v = View::new("T");
// let initial = v.is_group_collapsed(&cat, &group);
// v.toggle_group_collapse(&cat, &group);
// v.toggle_group_collapse(&cat, &group);
// prop_assert_eq!(v.is_group_collapsed(&cat, &group), initial);
// }
/// toggle_group_collapse is its own inverse
#[test]
fn toggle_group_collapse_involutive(
cat in "[A-Za-z][a-z]{1,7}",
group in "[A-Za-z][a-z]{1,7}",
) {
let mut v = View::new("T");
let collapsed = |v: &View| v.collapsed_groups.get(&cat).map(|s| s.contains(&group as &str)).unwrap_or(false);
let initial = collapsed(&v);
v.toggle_group_collapse(&cat, &group);
v.toggle_group_collapse(&cat, &group);
prop_assert_eq!(collapsed(&v), initial);
}
}
}