Draft iced_test crate and test todos example
This commit is contained in:
parent
d6182299b9
commit
d09d5d45ae
18 changed files with 640 additions and 63 deletions
|
|
@ -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"],
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue