use super::super::render;
use super::fixture::world;
use super::input;
use crate::alert::{Announced, announce};
use crate::cli_outbound::Cli;
#[test]
fn a_focused_frame_absorbs_what_needs_the_operator_and_tells_the_desktop_nothing() {
let mut world = world();
let (lernie, bl, bz) = (Cli::new("lernie"), Cli::new("bl"), Cli::new("bz"));
let ctx = egui::Context::default();
let queue = world.model.decision_queue(0);
assert!(
!queue.is_empty(),
"the fixture must have something waiting, else this drives nothing"
);
for _ in 0..2 {
let _ = ctx.run(input(), |ctx| {
render(ctx, &mut world.model, &mut world.state, &lernie, &bl, &bz);
});
}
assert!(
announce(&mut world.state.alerts, &queue, false, true).is_empty(),
"a frame the operator was looking at has already witnessed its asks"
);
let mut fresh = Announced::default();
assert!(announce(&mut fresh, &queue, false, true).is_empty());
}