//! What a background task can change, and how it gets back to the ui. use std::time::Duration; use iris::harness::Harness; use iris::prelude::*; #[test] fn a_task_update_reaches_the_tree() { let mut h = Harness::new((400, 200)); let widget = rect(Color::RED).add(&mut h.rsc); h.set_root(widget.task_on(CursorSense::click(), async move |mut ctx| { ctx.update(move |_, rsc| widget(rsc).color = Color::BLUE); })); h.click((200, 100)); assert!( h.await_update(Duration::from_secs(5)), "the task sent no update" ); assert_eq!(h.rsc[widget].color, Color::BLUE); }