use crate::wire::provision::verb::{READS, SUBCMD, stray};
#[test]
fn a_bare_invocation_has_no_stray_word() {
assert_eq!(stray(&[]), None);
}
#[test]
fn a_setting_spelled_after_the_verb_refuses_and_says_where_it_goes() {
let refusal = stray(&[
"WIRE_HOST=engine.example.com".to_owned(),
"WIRE_PORT=7737".to_owned(),
])
.expect("a word past the verb refuses");
assert!(
refusal.contains("WIRE_HOST=engine.example.com"),
"{refusal}"
);
assert!(
refusal.contains(&format!("yog {SUBCMD}")) && refusal.contains("BEFORE the verb"),
"{refusal}"
);
for key in READS {
assert!(refusal.contains(key), "{key} unnamed in {refusal}");
}
}
#[test]
fn the_first_stray_word_is_the_one_named() {
let refusal = stray(&["rotate".to_owned(), "now".to_owned()]).expect("refused");
assert!(refusal.contains("\"rotate\""), "{refusal}");
assert!(!refusal.contains("\"now\""), "{refusal}");
}