diff options
author | 2024-12-03 22:03:06 +0100 | |
---|---|---|
committer | 2024-12-10 04:51:08 +0100 | |
commit | d09d5d45ae4697eef277dfe30756b91c7d802a94 (patch) | |
tree | ce1852b218aa46f5400cee383ccfb68faa61abaf /examples | |
parent | d6182299b9db7a1928b7740736d53196e33d66e3 (diff) | |
download | iced-d09d5d45ae4697eef277dfe30756b91c7d802a94.tar.gz iced-d09d5d45ae4697eef277dfe30756b91c7d802a94.tar.bz2 iced-d09d5d45ae4697eef277dfe30756b91c7d802a94.zip |
Draft `iced_test` crate and test `todos` example
Diffstat (limited to 'examples')
-rw-r--r-- | examples/todos/Cargo.toml | 3 | ||||
-rw-r--r-- | examples/todos/src/main.rs | 33 |
2 files changed, 36 insertions, 0 deletions
diff --git a/examples/todos/Cargo.toml b/examples/todos/Cargo.toml index 0d72be86..65c34a8f 100644 --- a/examples/todos/Cargo.toml +++ b/examples/todos/Cargo.toml @@ -26,6 +26,9 @@ uuid = { version = "1.0", features = ["js"] } web-sys = { workspace = true, features = ["Window", "Storage"] } wasm-timer.workspace = true +[dev-dependencies] +iced_test.workspace = true + [package.metadata.deb] assets = [ ["target/release-opt/todos", "usr/bin/iced-todos", "755"], 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"); + } +} |