diff options
Diffstat (limited to 'examples/counter')
-rw-r--r-- | examples/counter/Cargo.toml | 3 | ||||
-rw-r--r-- | examples/counter/src/main.rs | 29 |
2 files changed, 32 insertions, 0 deletions
diff --git a/examples/counter/Cargo.toml b/examples/counter/Cargo.toml index e916a1a1..02eac329 100644 --- a/examples/counter/Cargo.toml +++ b/examples/counter/Cargo.toml @@ -11,3 +11,6 @@ iced.workspace = true [target.'cfg(target_arch = "wasm32")'.dependencies] iced.workspace = true iced.features = ["webgl", "fira-sans"] + +[dev-dependencies] +iced_test.workspace = true diff --git a/examples/counter/src/main.rs b/examples/counter/src/main.rs index 81684c1c..35d6f0e5 100644 --- a/examples/counter/src/main.rs +++ b/examples/counter/src/main.rs @@ -38,3 +38,32 @@ impl Counter { .align_x(Center) } } + +#[cfg(test)] +mod tests { + use super::*; + use iced_test::selector::text; + use iced_test::{simulator, Error}; + + #[test] + fn it_counts() -> Result<(), Error> { + let mut counter = Counter { value: 0 }; + let mut ui = simulator(counter.view()); + + let _ = ui.click(text("Increment")); + let _ = ui.click(text("Increment")); + let _ = ui.click(text("Decrement")); + + for message in ui.into_messages() { + counter.update(message); + } + + assert_eq!(counter.value, 1); + + let mut ui = simulator(counter.view()); + + assert!(ui.find(text("1")).is_ok(), "Counter should display 1!"); + + Ok(()) + } +} |