diff options
Diffstat (limited to 'examples/todos/src')
| -rw-r--r-- | examples/todos/src/main.rs | 33 | 
1 files changed, 33 insertions, 0 deletions
| 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"); +    } +} | 
