summaryrefslogtreecommitdiffstats
path: root/examples/counter
diff options
context:
space:
mode:
Diffstat (limited to 'examples/counter')
-rw-r--r--examples/counter/Cargo.toml3
-rw-r--r--examples/counter/src/main.rs29
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(())
+ }
+}