From d09d5d45ae4697eef277dfe30756b91c7d802a94 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 3 Dec 2024 22:03:06 +0100 Subject: Draft `iced_test` crate and test `todos` example --- examples/todos/src/main.rs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'examples/todos/src') diff --git a/examples/todos/src/main.rs b/examples/todos/src/main.rs index 25e3ead2..8772bb80 100644 --- a/examples/todos/src/main.rs +++ b/examples/todos/src/main.rs @@ -584,3 +584,36 @@ impl SavedState { Ok(()) } } + +#[cfg(test)] +mod tests { + use super::*; + + use iced::test; + use iced::test::selector; + + #[test] + fn it_creates_a_new_task() { + let (mut todos, _command) = Todos::new(); + let _command = todos.update(Message::Loaded(Err(LoadError::File))); + + let mut interface = test::interface(todos.view()); + + let _input = interface + .click("new-task") + .expect("new-task input must be present"); + + interface.typewrite("Create the universe"); + interface.press_key(keyboard::key::Named::Enter); + + for message in interface.into_messages() { + let _command = todos.update(message); + } + + let mut interface = test::interface(todos.view()); + + let _ = interface + .find(selector::text("Create the universe")) + .expect("New task must be present"); + } +} -- cgit