use super::*;
#[test]
fn the_absorb_set_is_the_settings_form_contract() {
let absorbed: Vec<&str> = COMMANDS
.iter()
.filter(|c| c.disposition == Disposition::Absorb)
.map(|c| c.name)
.collect();
assert!(
absorbed.contains(&"edit-mode") && absorbed.contains(&"tenacity"),
"the two families slice 1 absorbs must be marked Absorb: {absorbed:?}"
);
assert!(
COMMANDS.iter().any(|c| c.disposition == Disposition::Keep),
"nothing is kept — the absorb rule would be 'absorb everything'"
);
}
#[test]
fn every_settings_field_is_registered_as_absorbed() {
for field in crate::settings_form::Field::ALL {
let command = lookup(field.name())
.unwrap_or_else(|| panic!("/settings {} is not registered", field.name()));
assert_eq!(
command.disposition,
Disposition::Absorb,
"`/{}` is a field of /settings but the registry still calls it \
{:?} — the surface never shrinks if absorbing does not count",
command.name,
command.disposition
);
}
}
#[test]
fn every_absorbed_row_points_at_a_field_that_exists() {
let fields: std::collections::BTreeSet<&str> = crate::settings_form::Field::ALL
.iter()
.map(|f| f.name())
.collect();
let dangling: Vec<&str> = COMMANDS
.iter()
.filter(|c| {
c.disposition == Disposition::Absorb && matches!(c.surface, Surface::Retired(_))
})
.map(|c| c.name)
.filter(|name| !fields.contains(name))
.collect();
assert!(
dangling.is_empty(),
"these rows are marked absorbed, so their shim tells the operator \
the setting lives at `/settings <name>` — but /settings carries \
no such field: {dangling:?}"
);
}