use super::*;
use crate::test_support::TEMPLATE_PROVIDERS;
#[test]
fn the_worker_gains_clients_and_authoring_is_a_fixed_point() {
let once = authored(TEMPLATE_PROVIDERS);
assert_ne!(once, TEMPLATE_PROVIDERS, "the shipped template drifts");
let granted = entry_field(&once, ROLES, WORKER_ROLE, TOOLS)
.and_then(|v| flow_members(&v))
.expect("the worker's grant");
assert!(granted.iter().any(|n| n == clients::NAME), "{granted:?}");
for shipped in ["apply_patch", "bash", "dispatch", "read_file"] {
assert!(granted.iter().any(|n| n == shipped), "{granted:?}");
}
assert_eq!(authored(&once), once, "the fixed point");
}
#[test]
fn the_checkpoint_roles_are_left_exactly_as_they_were() {
let once = authored(TEMPLATE_PROVIDERS);
assert_eq!(entry_field(&once, ROLES, "compactor", TOOLS), None);
assert_eq!(
entry_field(&once, ROLES, "reviewer", TOOLS),
entry_field(TEMPLATE_PROVIDERS, ROLES, "reviewer", TOOLS),
);
}
#[test]
fn a_file_this_has_nothing_to_say_about_is_unchanged() {
for base in [
"",
"roles:\n worker:\n provider: anthropic\n model: m\n",
"roles:\n worker:\n provider: anthropic\n model: m\n tools:\n - bash\n",
"roles:\n compactor:\n provider: anthropic\n model: m\n",
] {
assert_eq!(authored(base), base, "{base:?}");
}
}