use super::*;
use std::path::PathBuf;
mod balls;
mod control;
mod fan;
mod fleet;
mod fork;
mod query;
mod refusals;
mod retarget;
mod start;
pub(crate) mod surface;
mod workflow;
pub(super) fn rt(gesture: Gesture) {
let encoded = encode(&gesture);
assert_eq!(decode(&encoded), Ok(gesture.clone()), "via {encoded}");
}
pub(super) fn p(s: &str) -> PathBuf {
PathBuf::from(s)
}
#[test]
fn every_gesture_variant_round_trips() {
for gesture in surface::gestures() {
rt(gesture);
}
}
#[test]
fn a_stop_without_the_children_field_defaults_to_false() {
let decoded = decode(&serde_json::json!({
"op": "stop", "workspace": "ws", "agent": "c-1"
}));
assert_eq!(
decoded,
Ok(Gesture::Act(Action::Stop {
workspace: "ws".into(),
agent: "c-1".into(),
children: false,
}))
);
}