diff options
author | Tim Oram <dev@mitmaro.ca> | 2020-11-20 10:02:07 -0330 |
---|---|---|
committer | Tim Oram <dev@mitmaro.ca> | 2020-11-20 10:14:53 -0330 |
commit | ea1f4fae05a8a74dc2d5425b4def938665bcfede (patch) | |
tree | 3c8e8866d5c0a894d923007382bd8080e1800173 | |
parent | 7519e4563c0550ec71e0eb043b7a825cc39d87ed (diff) |
Add process::modules tests
-rw-r--r-- | src/process/modules.rs | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/process/modules.rs b/src/process/modules.rs index 6f30acc..7eb9163 100644 --- a/src/process/modules.rs +++ b/src/process/modules.rs @@ -109,3 +109,63 @@ impl<'m> Modules<'m> { } } } + +#[cfg(test)] +mod tests { + // these tests just ensure that nothing panics + use super::*; + use crate::input::Input; + use crate::process::testutil::{process_module_test, TestContext, ViewState}; + use anyhow::anyhow; + use rstest::rstest; + + #[rstest( + state, + case::confirm_abort(State::ConfirmAbort), + case::confirm_rabase(State::ConfirmRebase), + case::edit(State::Edit), + case::error(State::Error), + case::external_editor(State::ExternalEditor), + case::help(State::Help), + case::list(State::List), + case::show_commit(State::ShowCommit), + case::window_size_error(State::WindowSizeError) + )] + #[serial_test::serial] + fn module_lifecycle(state: State) { + process_module_test( + &["pick 18d82dcc4c36cade807d7cf79700b6bbad8080b9 comment"], + ViewState::default(), + &[Input::Resize], + |test_context: TestContext<'_>| { + let mut config = test_context.config.clone(); + config.git.editor = String::from("true"); + let mut modules = Modules::new(test_context.display, &config); + modules.activate(state, test_context.rebase_todo_file, State::List); + modules.handle_input( + state, + test_context.input_handler, + test_context.rebase_todo_file, + test_context.view, + ); + modules.build_view_data(state, test_context.view, test_context.rebase_todo_file); + modules.deactivate(state); + modules.update_help_data(state); + }, + ); + } + + #[test] + #[serial_test::serial] + fn set_error_message() { + process_module_test( + &["pick aaa comment"], + ViewState::default(), + &[], + |test_context: TestContext<'_>| { + let mut modules = Modules::new(test_context.display, test_context.config); + modules.set_error_message(&anyhow!("Test Error")); + }, + ); + } +} |