summaryrefslogtreecommitdiffstats
path: root/src/modules/list/tests/activate.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/list/tests/activate.rs')
-rw-r--r--src/modules/list/tests/activate.rs65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/modules/list/tests/activate.rs b/src/modules/list/tests/activate.rs
new file mode 100644
index 0000000..24dd42e
--- /dev/null
+++ b/src/modules/list/tests/activate.rs
@@ -0,0 +1,65 @@
+use claims::{assert_none, assert_some_eq};
+
+use super::*;
+use crate::{
+ assert_results,
+ process::Artifact,
+ search::{Interrupter, SearchResult, Searchable},
+ test_helpers::{create_config, testers},
+};
+
+#[derive(Clone)]
+struct MockedSearchable;
+
+impl Searchable for MockedSearchable {
+ fn reset(&mut self) {}
+
+ fn search(&mut self, _: Interrupter, term: &str) -> SearchResult {
+ SearchResult::None
+ }
+}
+
+#[test]
+fn sets_selected_line_action() {
+ testers::module(&["pick aaa c1"], &[], |mut test_context| {
+ let mut module = create_list(&create_config(), test_context.take_todo_file());
+ _ = test_context.activate(&mut module, State::List);
+ assert_some_eq!(module.selected_line_action, Action::Pick);
+ });
+}
+
+#[test]
+fn sets_selected_line_action_none_selected() {
+ testers::module(&["pick aaa c1", "pick bbb c2"], &[], |mut test_context| {
+ let mut todo_file = test_context.take_todo_file();
+ todo_file.set_lines(vec![]);
+
+ let mut module = create_list(&create_config(), todo_file);
+ _ = test_context.activate(&mut module, State::List);
+ assert_none!(module.selected_line_action);
+ });
+}
+
+#[test]
+fn result() {
+ testers::module(&["pick aaa c1", "pick bbb c2"], &[], |mut test_context| {
+ let mut module = create_list(&create_config(), test_context.take_todo_file());
+ assert_results!(
+ test_context.activate(&mut module, State::List),
+ Artifact::Searchable(Box::new(MockedSearchable {}))
+ );
+ });
+}
+
+#[test]
+fn result_with_serach_term() {
+ testers::module(&["pick aaa c1", "pick bbb c2"], &[], |mut test_context| {
+ let mut module = create_list(&create_config(), test_context.take_todo_file());
+ module.search_bar.start_search(Some("foo"));
+ assert_results!(
+ test_context.activate(&mut module, State::List),
+ Artifact::Searchable(Box::new(MockedSearchable {})),
+ Artifact::SearchTerm(String::from("foo"))
+ );
+ });
+}