summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Oram <dev@mitmaro.ca>2020-11-20 10:02:07 -0330
committerTim Oram <dev@mitmaro.ca>2020-11-20 10:14:53 -0330
commitea1f4fae05a8a74dc2d5425b4def938665bcfede (patch)
tree3c8e8866d5c0a894d923007382bd8080e1800173
parent7519e4563c0550ec71e0eb043b7a825cc39d87ed (diff)
Add process::modules tests
-rw-r--r--src/process/modules.rs60
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"));
+ },
+ );
+ }
+}