From c2b679bf91ef4e966983c614d16ada744856dd87 Mon Sep 17 00:00:00 2001 From: Tim Oram Date: Sat, 5 Aug 2023 15:43:15 -0230 Subject: Add action_line macro to core crate tests Using the newly added assert_rendered_output changes for dynamic assertions, create a new action_line macro for matching lines that contain todo line actions. Also refactor the existing tests to take advantage of some of the new dynamic matchers, and body only matching. --- Cargo.lock | 1 + src/core/Cargo.toml | 1 + src/core/src/modules/list/tests/change_action.rs | 176 +++++-------------- src/core/src/modules/list/tests/movement.rs | 211 +++++++++------------- src/core/src/modules/list/tests/normal_mode.rs | 10 +- src/core/src/modules/list/tests/remove_lines.rs | 64 +++---- src/core/src/modules/list/tests/render.rs | 42 +++++ src/core/src/modules/list/tests/search.rs | 85 +++++---- src/core/src/modules/list/tests/swap_lines.rs | 144 ++++++--------- src/core/src/modules/list/tests/toggle_break.rs | 30 ++-- src/core/src/modules/list/tests/undo_redo.rs | 70 +++----- src/core/src/modules/list/tests/visual_mode.rs | 86 ++++----- src/core/src/modules/show_commit/tests.rs | 73 ++++---- src/core/src/testutil/action_line.rs | 215 +++++++++++++++++++++++ src/core/src/testutil/mod.rs | 2 + 15 files changed, 617 insertions(+), 593 deletions(-) create mode 100644 src/core/src/testutil/action_line.rs diff --git a/Cargo.lock b/Cargo.lock index dd2c816..40d5b05 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -374,6 +374,7 @@ dependencies = [ "parking_lot", "pico-args", "pretty_assertions", + "regex", "rstest", "rustc_version", "serial_test", diff --git a/src/core/Cargo.toml b/src/core/Cargo.toml index a7c1a48..bd6b72d 100644 --- a/src/core/Cargo.toml +++ b/src/core/Cargo.toml @@ -36,6 +36,7 @@ girt-view = {version = "2.3.0", path = "../../src/view"} [dev-dependencies] claims = "0.7.1" pretty_assertions = "1.4.0" +regex = "1.8.3" rstest = "0.18.1" serial_test = "2.0.0" girt-view = {version = "2.3.0", path = "../../src/view", features = ["testutils"]} diff --git a/src/core/src/modules/list/tests/change_action.rs b/src/core/src/modules/list/tests/change_action.rs index bbac36d..173fea1 100644 --- a/src/core/src/modules/list/tests/change_action.rs +++ b/src/core/src/modules/list/tests/change_action.rs @@ -1,49 +1,7 @@ use view::assert_rendered_output; use super::*; -use crate::testutil::module_test; - -#[test] -fn pinned_segments() { - module_test( - &[ - "break", - "drop aaa c1", - "edit aaa c1", - "fixup aaa c1", - "pick aaa c1", - "reword aaa c1", - "squash aaa c1", - "exec command", - "label reference", - "reset reference", - "merge command", - ], - &[Event::from(MetaEvent::ActionDrop)], - |mut test_context| { - let mut module = create_list(&Config::new(), test_context.take_todo_file()); - _ = test_context.handle_all_events(&mut module); - let view_data = test_context.build_view_data(&mut module); - assert_rendered_output!( - Options AssertRenderOptions::INCLUDE_PINNED | AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Pin(3)}{Selected} > break {Pad( )}", - "{Pin(2)} drop aaa c1", - "{Pin(2)} edit aaa c1", - "{Pin(2)} fixup aaa c1", - "{Pin(2)} pick aaa c1", - "{Pin(2)} reword aaa c1", - "{Pin(2)} squash aaa c1", - "{Pin(3)} exec command", - "{Pin(3)} label reference", - "{Pin(3)} reset reference", - "{Pin(3)} merge command" - ); - }, - ); -} +use crate::{action_line, testutil::module_test}; #[test] fn normal_mode_action_change_to_drop() { @@ -54,13 +12,7 @@ fn normal_mode_action_change_to_drop() { let mut module = create_list(&Config::new(), test_context.take_todo_file()); _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); - assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > drop aaa c1{Pad( )}" - ); + assert_rendered_output!(Body view_data, action_line!(Selected Drop "aaa", "c1")); }, ); } @@ -87,15 +39,12 @@ fn visual_mode_action_change_to_drop() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - "{Selected} > drop aaa c2{Pad( )}", - "{Selected} > drop aaa c3{Pad( )}", - "{Selected} > drop aaa c4{Pad( )}", - " pick aaa c5" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Drop "aaa", "c2"), + action_line!(Drop "aaa", "c3"), + action_line!(Drop "aaa", "c4"), + action_line!(Pick "aaa", "c5") ); }, ); @@ -111,11 +60,8 @@ fn normal_mode_action_change_to_edit() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > edit aaa c1{Pad( )}" + Body view_data, + action_line!(Selected Edit "aaa", "c1") ); }, ); @@ -143,15 +89,12 @@ fn visual_mode_action_change_to_edit() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - "{Selected} > edit aaa c2{Pad( )}", - "{Selected} > edit aaa c3{Pad( )}", - "{Selected} > edit aaa c4{Pad( )}", - " pick aaa c5" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Selected Edit "aaa", "c2"), + action_line!(Selected Edit "aaa", "c3"), + action_line!(Selected Edit "aaa", "c4"), + action_line!(Pick "aaa", "c5") ); }, ); @@ -167,11 +110,8 @@ fn normal_mode_action_change_to_fixup() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > fixup aaa c1{Pad( )}" + Body view_data, + action_line!(Selected Fixup "aaa", "c1") ); }, ); @@ -199,15 +139,12 @@ fn visual_mode_action_change_to_fixup() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - "{Selected} > fixup aaa c2{Pad( )}", - "{Selected} > fixup aaa c3{Pad( )}", - "{Selected} > fixup aaa c4{Pad( )}", - " pick aaa c5" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Selected Fixup "aaa", "c2"), + action_line!(Selected Fixup "aaa", "c3"), + action_line!(Selected Fixup "aaa", "c4"), + action_line!(Pick "aaa", "c5") ); }, ); @@ -223,11 +160,8 @@ fn normal_mode_action_change_to_pick() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c1{Pad( )}" + Body view_data, + action_line!(Selected Pick "aaa", "c1") ); }, ); @@ -255,15 +189,12 @@ fn visual_mode_action_change_to_pick() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " drop aaa c1", - "{Selected} > pick aaa c2{Pad( )}", - "{Selected} > pick aaa c3{Pad( )}", - "{Selected} > pick aaa c4{Pad( )}", - " drop aaa c5" + Body view_data, + action_line!(Drop "aaa", "c1"), + action_line!(Selected Pick "aaa", "c2"), + action_line!(Selected Pick "aaa", "c3"), + action_line!(Selected Pick "aaa", "c4"), + action_line!(Drop "aaa", "c5") ); }, ); @@ -279,11 +210,8 @@ fn normal_mode_action_change_to_reword() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > reword aaa c1{Pad( )}" + Body view_data, + action_line!(Selected Reword "aaa", "c1") ); }, ); @@ -311,15 +239,12 @@ fn visual_mode_action_change_to_reword() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - "{Selected} > reword aaa c2{Pad( )}", - "{Selected} > reword aaa c3{Pad( )}", - "{Selected} > reword aaa c4{Pad( )}", - " pick aaa c5" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Selected Reword "aaa", "c2"), + action_line!(Selected Reword "aaa", "c3"), + action_line!(Selected Reword "aaa", "c4"), + action_line!(Pick "aaa", "c5") ); }, ); @@ -335,11 +260,7 @@ fn normal_mode_action_change_to_squash() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > squash aaa c1{Pad( )}" + Body view_data, action_line!(Squash "aaa", "c1") ); }, ); @@ -367,15 +288,12 @@ fn visual_mode_action_change_to_squash() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - "{Selected} > squash aaa c2{Pad( )}", - "{Selected} > squash aaa c3{Pad( )}", - "{Selected} > squash aaa c4{Pad( )}", - " pick aaa c5" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Squash "aaa", "c2"), + action_line!(Squash "aaa", "c3"), + action_line!(Squash "aaa", "c4"), + action_line!(Pick "aaa", "c5") ); }, ); diff --git a/src/core/src/modules/list/tests/movement.rs b/src/core/src/modules/list/tests/movement.rs index e5914b3..93db595 100644 --- a/src/core/src/modules/list/tests/movement.rs +++ b/src/core/src/modules/list/tests/movement.rs @@ -2,7 +2,7 @@ use ::input::{KeyModifiers, MouseEvent, MouseEventKind}; use view::assert_rendered_output; use super::*; -use crate::testutil::module_test; +use crate::{action_line, testutil::module_test}; #[test] fn move_down_1() { @@ -14,13 +14,10 @@ fn move_down_1() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - "{Selected} > pick aaa c2{Pad( )}", - " pick aaa c3" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Selected Pick "aaa", "c2"), + action_line!(Pick "aaa", "c3") ); }, ); @@ -36,13 +33,10 @@ fn move_down_view_end() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - " pick aaa c2", - "{Selected} > pick aaa c3{Pad( )}" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Pick "aaa", "c2"), + action_line!(Selected Pick "aaa", "c3") ); }, ); @@ -58,13 +52,10 @@ fn move_down_past_end() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - " pick aaa c2", - "{Selected} > pick aaa c3{Pad( )}" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Pick "aaa", "c2"), + action_line!(Selected Pick "aaa", "c3") ); }, ); @@ -84,13 +75,10 @@ fn move_down_scroll_bottom_move_up_one() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - "{Selected} > pick aaa c2{Pad( )}", - " pick aaa c3" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Selected Pick "aaa", "c2"), + action_line!(Pick "aaa", "c3") ); }, ); @@ -110,13 +98,10 @@ fn move_down_scroll_bottom_move_up_top() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c1{Pad( )}", - " pick aaa c2", - " pick aaa c3" + Body view_data, + action_line!(Selected Pick "aaa", "c1"), + action_line!(Pick "aaa", "c2"), + action_line!(Pick "aaa", "c3") ); }, ); @@ -135,14 +120,11 @@ fn move_up_attempt_above_top() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c1{Pad( )}", - " pick aaa c2", - " pick aaa c3", - " pick aaa c4" + Body view_data, + action_line!(Selected Pick "aaa", "c1"), + action_line!(Pick "aaa", "c2"), + action_line!(Pick "aaa", "c3"), + action_line!(Pick "aaa", "c4") ); }, ); @@ -158,14 +140,11 @@ fn move_down_attempt_below_bottom() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - " pick aaa c2", - " pick aaa c3", - "{Selected} > pick aaa c4{Pad( )}" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Pick "aaa", "c2"), + action_line!(Pick "aaa", "c3"), + action_line!(Selected Pick "aaa", "c4") ); }, ); @@ -182,14 +161,11 @@ fn move_page_up_from_top() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c1{Pad( )}", - " pick aaa c2", - " pick aaa c3", - " pick aaa c4" + Body view_data, + action_line!(Selected Pick "aaa", "c1"), + action_line!(Pick "aaa", "c2"), + action_line!(Pick "aaa", "c3"), + action_line!(Pick "aaa", "c4") ); }, ); @@ -210,14 +186,11 @@ fn move_page_up_from_one_page_down() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c1{Pad( )}", - " pick aaa c2", - " pick aaa c3", - " pick aaa c4" + Body view_data, + action_line!(Selected Pick "aaa", "c1"), + action_line!(Pick "aaa", "c2"), + action_line!(Pick "aaa", "c3"), + action_line!(Pick "aaa", "c4") ); }, ); @@ -238,14 +211,11 @@ fn move_page_up_from_one_page_down_minus_1() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c1{Pad( )}", - " pick aaa c2", - " pick aaa c3", - " pick aaa c4" + Body view_data, + action_line!(Selected Pick "aaa", "c1"), + action_line!(Pick "aaa", "c2"), + action_line!(Pick "aaa", "c3"), + action_line!(Pick "aaa", "c4") ); }, ); @@ -267,14 +237,11 @@ fn move_page_up_from_bottom() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - "{Selected} > pick aaa c2{Pad( )}", - " pick aaa c3", - " pick aaa c4" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Selected Pick "aaa", "c2"), + action_line!(Pick "aaa", "c3"), + action_line!(Pick "aaa", "c4") ); }, ); @@ -294,14 +261,11 @@ fn move_home() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c1{Pad( )}", - " pick aaa c2", - " pick aaa c3", - " pick aaa c4" + Body view_data, + action_line!(Selected Pick "aaa", "c1"), + action_line!(Pick "aaa", "c2"), + action_line!(Pick "aaa", "c3"), + action_line!(Pick "aaa", "c4") ); }, ); @@ -317,14 +281,11 @@ fn move_end() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - " pick aaa c2", - " pick aaa c3", - "{Selected} > pick aaa c4{Pad( )}" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Pick "aaa", "c2"), + action_line!(Pick "aaa", "c3"), + action_line!(Selected Pick "aaa", "c4") ); }, ); @@ -341,14 +302,11 @@ fn move_page_down_past_bottom() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - " pick aaa c2", - " pick aaa c3", - "{Selected} > pick aaa c4{Pad( )}" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Pick "aaa", "c2"), + action_line!(Pick "aaa", "c3"), + action_line!(Selected Pick "aaa", "c4") ); }, ); @@ -369,14 +327,11 @@ fn move_page_down_one_from_bottom() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - " pick aaa c2", - " pick aaa c3", - "{Selected} > pick aaa c4{Pad( )}" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Pick "aaa", "c2"), + action_line!(Pick "aaa", "c3"), + action_line!(Selected Pick "aaa", "c4") ); }, ); @@ -396,14 +351,11 @@ fn move_page_down_one_page_from_bottom() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - " pick aaa c2", - " pick aaa c3", - "{Selected} > pick aaa c4{Pad( )}" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Pick "aaa", "c2"), + action_line!(Pick "aaa", "c3"), + action_line!(Selected Pick "aaa", "c4") ); }, ); @@ -438,13 +390,10 @@ fn mouse_scroll() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - "{Selected} > pick aaa c2{Pad( )}", - " pick aaa c3" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Selected Pick "aaa", "c2"), + action_line!(Pick "aaa", "c3") ); }, ); diff --git a/src/core/src/modules/list/tests/normal_mode.rs b/src/core/src/modules/list/tests/normal_mode.rs index 1236176..1ad7d18 100644 --- a/src/core/src/modules/list/tests/normal_mode.rs +++ b/src/core/src/modules/list/tests/normal_mode.rs @@ -2,7 +2,7 @@ use ::input::KeyCode; use view::assert_rendered_output; use super::*; -use crate::{assert_results, process::Artifact, testutil::module_test}; +use crate::{action_line, assert_results, process::Artifact, testutil::module_test}; #[test] fn change_auto_select_next_with_next_line() { @@ -16,11 +16,9 @@ fn change_auto_select_next_with_next_line() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Normal} {ActionSquash}squash {Normal}aaa c1", - "{Selected}{Normal} > {ActionPick}pick {Normal}aaa c2{Pad( )}" + Body view_data, + action_line!(Squash "aaa", "c1"), + action_line!(Selected Pick "aaa", "c2") ); }, ); diff --git a/src/core/src/modules/list/tests/remove_lines.rs b/src/core/src/modules/list/tests/remove_lines.rs index ed7392a..acee492 100644 --- a/src/core/src/modules/list/tests/remove_lines.rs +++ b/src/core/src/modules/list/tests/remove_lines.rs @@ -1,7 +1,7 @@ use view::assert_rendered_output; use super::*; -use crate::testutil::module_test; +use crate::{action_line, testutil::module_test}; #[test] fn normal_mode_remove_line_first() { @@ -18,14 +18,11 @@ fn normal_mode_remove_line_first() { let mut module = create_list(&Config::new(), test_context.take_todo_file()); _ = test_context.handle_all_events(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - test_context.build_view_data(&mut module), - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick bbb c2{Pad( )}", - " pick ccc c3", - " pick ddd c4", - " pick eee c5" + Body test_context.build_view_data(&mut module), + action_line!(Selected Pick "bbb", "c2"), + action_line!(Pick "ccc", "c3"), + action_line!(Pick "ddd", "c4"), + action_line!(Pick "eee", "c5") ); }, ); @@ -52,14 +49,11 @@ fn normal_mode_remove_line_end() { let mut module = create_list(&Config::new(), test_context.take_todo_file()); _ = test_context.handle_all_events(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - test_context.build_view_data(&mut module), - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - " pick bbb c2", - " pick ccc c3", - "{Selected} > pick ddd c4{Pad( )}" + Body test_context.build_view_data(&mut module), + action_line!(Pick "aaa", "c1"), + action_line!(Pick "bbb", "c2"), + action_line!(Pick "ccc", "c3"), + action_line!(Selected Pick "ddd", "c4") ); }, ); @@ -85,12 +79,9 @@ fn visual_mode_remove_lines_start_index_first() { let mut module = create_list(&Config::new(), test_context.take_todo_file()); _ = test_context.handle_all_events(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - test_context.build_view_data(&mut module), - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick ddd c4{Pad( )}", - " pick eee c5" + Body test_context.build_view_data(&mut module), + action_line!(Selected Pick "ddd", "c4"), + action_line!(Pick "eee", "c5") ); assert_eq!( module.visual_index_start.unwrap(), @@ -122,12 +113,9 @@ fn visual_mode_remove_lines_end_index_first() { let mut module = create_list(&Config::new(), test_context.take_todo_file()); _ = test_context.handle_all_events(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - test_context.build_view_data(&mut module), - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick ddd c4{Pad( )}", - " pick eee c5" + Body test_context.build_view_data(&mut module), + action_line!(Selected Pick "ddd", "c4"), + action_line!(Pick "eee", "c5") ); assert_eq!( module.visual_index_start.unwrap(), @@ -161,12 +149,9 @@ fn visual_mode_remove_lines_start_index_last() { let mut module = create_list(&Config::new(), test_context.take_todo_file()); _ = test_context.handle_all_events(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - test_context.build_view_data(&mut module), - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - "{Selected} > pick bbb c2{Pad( )}" + Body test_context.build_view_data(&mut module), + action_line!(Pick "aaa", "c1"), + action_line!(Selected Pick "bbb", "c2") ); assert_eq!( module.visual_index_start.unwrap(), @@ -198,12 +183,9 @@ fn visual_mode_remove_lines_end_index_last() { let mut module = create_list(&Config::new(), test_context.take_todo_file()); _ = test_context.handle_all_events(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - test_context.build_view_data(&mut module), - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - "{Selected} > pick bbb c2{Pad( )}" + Body test_context.build_view_data(&mut module), + action_line!(Pick "aaa", "c1"), + action_line!(Selected Pick "bbb", "c2") ); assert_eq!( module.visual_index_start.unwrap(), diff --git a/src/core/src/modules/list/tests/render.rs b/src/core/src/modules/list/tests/render.rs index 1397652..134d56e 100644 --- a/src/core/src/modules/list/tests/render.rs +++ b/src/core/src/modules/list/tests/render.rs @@ -129,3 +129,45 @@ fn noop_list() { ); }); } + +#[test] +fn pinned_segments() { + module_test( + &[ + "break", + "drop aaa c1", + "edit aaa c1", + "fixup aaa c1", + "pick aaa c1", + "reword aaa c1", + "squash aaa c1", + "exec command", + "label reference", + "reset reference", + "merge command", + ], + &[Event::from(MetaEvent::ActionDrop)], + |mut test_context| { + let mut module = create_list(&Config::new(), test_context.take_todo_file()); + _ = test_context.handle_all_events(&mut module); + let view_data = test_context.build_view_data(&mut module); + assert_rendered_output!( + Options AssertRenderOptions::INCLUDE_PINNED | AssertRenderOptions::EXCLUDE_STYLE, + view_data, + "{TITLE}{HELP}", + "{BODY}", + "{Pin(3)}{Selected} > break {Pad( )}", + "{Pin(2)} drop aaa c1", + "{Pin(2)} edit aaa c1", + "{Pin(2)} fixup aaa c1", + "{Pin(2)} pick aaa c1", + "{Pin(2)} reword aaa c1", + "{Pin(2)} squash aaa c1", + "{Pin(3)} exec command", + "{Pin(3)} label reference", + "{Pin(3)} reset reference", + "{Pin(3)} merge command" + ); + }, + ); +} diff --git a/src/core/src/modules/list/tests/search.rs b/src/core/src/modules/list/tests/search.rs index 367a64d..24cc24c 100644 --- a/src/core/src/modules/list/tests/search.rs +++ b/src/core/src/modules/list/tests/search.rs @@ -1,7 +1,7 @@ -use view::assert_rendered_output; +use view::{assert_rendered_output, render_line}; use super::*; -use crate::{assert_results, process::Artifact, testutil::module_test}; +use crate::{action_line, assert_results, process::Artifact, testutil::module_test}; #[test] fn start_edit() { @@ -16,7 +16,7 @@ fn start_edit() { view_data, "{TITLE}{HELP}", "{BODY}", - "{Selected}{Normal} > {ActionPick}pick {Normal}aaaaaaaa comment{Pad( )}", + render_line!(Not Contains "IndicatorColor"), "{TRAILING}", "{Normal}/{Normal,Underline}" ); @@ -42,7 +42,7 @@ fn with_match_on_hash() { view_data, "{TITLE}{HELP}", "{BODY}", - "{Selected}{Normal} > {ActionPick}pick {IndicatorColor}aaaaaaaa{Normal} comment1{Pad( )}", + render_line!(Contains "IndicatorColor"), "{TRAILING}", "{Normal}/aaa{Normal,Underline}" ); @@ -63,7 +63,7 @@ fn with_no_match() { view_data, "{TITLE}{HELP}", "{BODY}", - "{Selected}{Normal} > {ActionPick}pick {Normal}aaaaaaaa comment1{Pad( )}", + render_line!(Not Contains "IndicatorColor"), "{TRAILING}", "{Normal}/x{Normal,Underline}" ); @@ -88,7 +88,7 @@ fn start_with_matches_and_with_term() { view_data, "{TITLE}{HELP}", "{BODY}", - "{Selected}{Normal} > {ActionPick}pick {IndicatorColor,Underline}aaaaaaaa{Normal} comment1{Pad( )}", + render_line!(Contains "{IndicatorColor,Underline}"), "{TRAILING}", "{Normal}[a]: 1/1" ); @@ -113,7 +113,7 @@ fn start_with_no_matches_and_with_term() { view_data, "{TITLE}{HELP}", "{BODY}", - "{Selected}{Normal} > {ActionPick}pick {Normal}aaaaaaaa comment1{Pad( )}", + render_line!(Not Contains "IndicatorColor"), "{TRAILING}", "{Normal}[x]: No Results" ); @@ -137,7 +137,7 @@ fn start_with_no_term() { view_data, "{TITLE}{HELP}", "{BODY}", - "{Selected}{Normal} > {ActionPick}pick {Normal}aaaaaaaa comment1{Pad( )}" + action_line!(Selected Pick "aaaaaaaa", "comment1") ); }, ); @@ -161,9 +161,9 @@ fn normal_mode_next() { view_data, "{TITLE}{HELP}", "{BODY}", - "{Normal} {ActionPick}pick {Normal}aaaaaaaa {IndicatorColor}x{Normal}1", - "{Selected}{Normal} > {ActionPick}pick {Normal}bbbbbbbb {IndicatorColor,Underline}x{Normal}2{Pad( )}", - "{Normal} {ActionPick}pick {Normal}cccccccc {IndicatorColor}x{Normal}3", + render_line!(Contains "{IndicatorColor}"), + render_line!(Contains "{IndicatorColor,Underline}"), + render_line!(Contains "{IndicatorColor}"), "{TRAILING}", "{Normal}[x]: 2/3" ); @@ -190,9 +190,9 @@ fn visual_mode_next() { view_data, "{TITLE}{HELP}", "{BODY}", - "{Selected}{Normal,Dimmed} > {ActionPick}pick {Normal}aaaaaaaa {IndicatorColor}x{Normal}1{Pad( )}", - "{Selected}{Normal} > {ActionPick}pick {Normal}bbbbbbbb {IndicatorColor,Underline}x{Normal}2{Pad( )}", - "{Normal} {ActionPick}pick {Normal}cccccccc {IndicatorColor}x{Normal}3", + render_line!(All render_line!(Contains "Dimmed"), render_line!(Contains "{IndicatorColor}")), + render_line!(Contains "{IndicatorColor,Underline}"), + render_line!(All render_line!(Not Contains "Dimmed"), render_line!(Contains "{IndicatorColor}")), "{TRAILING}", "{Normal}[x]: 2/3" ); @@ -220,9 +220,9 @@ fn normal_mode_next_with_wrap() { view_data, "{TITLE}{HELP}", "{BODY}", - "{Selected}{Normal} > {ActionPick}pick {Normal}aaaaaaaa {IndicatorColor,Underline}x{Normal}1{Pad( )}", - "{Normal} {ActionPick}pick {Normal}bbbbbbbb {IndicatorColor}x{Normal}2", - "{Normal} {ActionPick}pick {Normal}cccccccc {IndicatorColor}x{Normal}3", + render_line!(Contains "{IndicatorColor,Underline}"), + render_line!(Contains "{IndicatorColor}"), + render_line!(Contains "{IndicatorColor}"), "{TRAILING}", "{Normal}[x]: 1/3" ); @@ -251,9 +251,9 @@ fn visual_mode_next_with_wrap() { view_data, "{TITLE}{HELP}", "{BODY}", - "{Selected}{Normal} > {ActionPick}pick {Normal}aaaaaaaa {IndicatorColor,Underline}x{Normal}1{Pad( )}", - "{Selected}{Normal,Dimmed} > {ActionPick}pick {Normal}bbbbbbbb {IndicatorColor}x{Normal}2{Pad( )}", - "{Normal} {ActionPick}pick {Normal}cccccccc {IndicatorColor}x{Normal}3", + render_line!(Contains "{IndicatorColor,Underline}"), + render_line!(All render_line!(Contains "Dimmed"), render_line!(Contains "{IndicatorColor}")), + render_line!(Contains "{IndicatorColor}"), "{TRAILING}", "{Normal}[x]: 1/3" ); @@ -281,9 +281,9 @@ fn normal_mode_previous() { view_data, "{TITLE}{HELP}", "{BODY}", - "{Normal} {ActionPick}pick {Normal}aaaaaaaa {IndicatorColor}x{Normal}1", - "{Selected}{Normal} > {ActionPick}pick {Normal}bbbbbbbb {IndicatorColor,Underline}x{Normal}2{Pad( )}", - "{Normal} {ActionPick}pick {Normal}cccccccc {IndicatorColor}x{Normal}3", + render_line!(Contains "{IndicatorColor}"), + render_line!(Contains "{IndicatorColor,Underline}"), + render_line!(Contains "{IndicatorColor}"), "{TRAILING}", "{Normal}[x]: 2/3" ); @@ -312,9 +312,9 @@ fn visual_mode_previous() { view_data, "{TITLE}{HELP}", "{BODY}", - "{Normal} {ActionPick}pick {Normal}aaaaaaaa {IndicatorColor}x{Normal}1", - "{Selected}{Normal} > {ActionPick}pick {Normal}bbbbbbbb {IndicatorColor,Underline}x{Normal}2{Pad( )}", - "{Selected}{Normal,Dimmed} > {ActionPick}pick {Normal}cccccccc {IndicatorColor}x{Normal}3{Pad( )}", + render_line!(Contains "{IndicatorColor}"), + render_line!(All render_line!(Not Contains "Dimmed"), render_line!(Contains "{IndicatorColor,Underline}")), + render_line!(All render_line!(Contains "Dimmed"), render_line!(Contains "{IndicatorColor}")), "{TRAILING}", "{Normal}[x]: 2/3" ); @@ -340,9 +340,9 @@ fn normal_mode_previous_with_wrap() { view_data, "{TITLE}{HELP}", "{BODY}", - "{Normal} {ActionPick}pick {Normal}aaaaaaaa {IndicatorColor}x{Normal}1", - "{Normal} {ActionPick}pick {Normal}bbbbbbbb {IndicatorColor}x{Normal}2", - "{Selected}{Normal} > {ActionPick}pick {Normal}cccccccc {IndicatorColor,Underline}x{Normal}3{Pad( )}", + render_line!(Contains "{IndicatorColor}"), + render_line!(Contains "{IndicatorColor}"), + render_line!(Contains "{IndicatorColor,Underline}"), "{TRAILING}", "{Normal}[x]: 3/3" ); @@ -369,9 +369,9 @@ fn visual_mode_previous_with_wrap() { view_data, "{TITLE}{HELP}", "{BODY}", - "{Selected}{Normal,Dimmed} > {ActionPick}pick {Normal}aaaaaaaa {IndicatorColor}x{Normal}1{Pad( )}", - "{Selected}{Normal,Dimmed} > {ActionPick}pick {Normal}bbbbbbbb {IndicatorColor}x{Normal}2{Pad( )}", - "{Selected}{Normal} > {ActionPick}pick {Normal}cccccccc {IndicatorColor,Underline}x{Normal}3{Pad( )}", + render_line!(All render_line!(Contains "Dimmed"), render_line!(Contains "{IndicatorColor}")), + render_line!(All render_line!(Contains "Dimmed"), render_line!(Contains "{IndicatorColor}")), + render_line!(All render_line!(Not Contains "Dimmed"), render_line!(Contains "{IndicatorColor,Underline}")), "{TRAILING}", "{Normal}[x]: 3/3" ); @@ -397,9 +397,9 @@ fn cancel() { view_data, "{TITLE}{HELP}", "{BODY}", - "{Selected}{Normal} > {ActionPick}pick {Normal}aaaaaaaa x1{Pad( )}", - "{Normal} {ActionPick}pick {Normal}bbbbbbbb x2", - "{Normal} {ActionPick}pick {Normal}cccccccc x3" + action_line!(Selected Pick "aaaaaaaa", "x1"), + action_line!(Pick "bbbbbbbb", "x2"), + action_line!(Pick "cccccccc", "x3") ); }, ); @@ -429,11 +429,11 @@ fn set_search_start_hint() { view_data, "{TITLE}{HELP}", "{BODY}", - "{Normal} {ActionPick}pick {Normal}aaaaaaaa {IndicatorColor}x{Normal}1", - "{Normal} {ActionPick}pick {Normal}aaaaaaaa a", - "{Selected}{Normal} > {ActionPick}pick {Normal}bbbbbbbb {IndicatorColor,Underline}x{Normal}2{Pad( )}", - "{Normal} {ActionPick}pick {Normal}aaaaaaaa b", - "{Normal} {ActionPick}pick {Normal}bbbbbbbb {IndicatorColor}x{Normal}3", + render_line!(Contains "{IndicatorColor}"), + render_line!(Not Contains "{IndicatorColor}"), + render_line!(Contains "{IndicatorColor,Underline}"), + render_line!(Not Contains "{IndicatorColor}"), + render_line!(Contains "{IndicatorColor}"), "{TRAILING}", "{Normal}[x]: 2/3" ); @@ -454,8 +454,7 @@ fn highlight_multiple() { view_data, "{TITLE}{HELP}", "{BODY}", - "{Selected}{Normal} > {ActionPick}pick {Normal}12345678 \ - {IndicatorColor}x{Normal}a{IndicatorColor}xx{Normal}a{IndicatorColor}xxx{Normal}{Pad( )}", + render_line!(Contains "{IndicatorColor}x{Normal}a{IndicatorColor}xx{Normal}a{IndicatorColor}xxx"), "{TRAILING}", "{Normal}/x{Normal,Underline}" ); @@ -476,7 +475,7 @@ fn skip_no_content() { view_data, "{TITLE}{HELP}", "{BODY}", - "{Selected}{Normal} > {ActionBreak}break {Normal}{Pad( )}", + render_line!(Not Contains "{IndicatorColor}"), "{TRAILING}", "{Normal}/x{Normal,Underline}" ); diff --git a/src/core/src/modules/list/tests/swap_lines.rs b/src/core/src/modules/list/tests/swap_lines.rs index f0dfdb4..5b56797 100644 --- a/src/core/src/modules/list/tests/swap_lines.rs +++ b/src/core/src/modules/list/tests/swap_lines.rs @@ -1,7 +1,7 @@ use view::assert_rendered_output; use super::*; -use crate::testutil::module_test; +use crate::{action_line, testutil::module_test}; #[test] fn normal_mode_change_swap_down() { @@ -13,13 +13,10 @@ fn normal_mode_change_swap_down() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c2", - "{Selected} > pick aaa c1{Pad( )}", - " pick aaa c3" + Body view_data, + action_line!(Pick "aaa", "c2"), + action_line!(Selected Pick "aaa", "c1"), + action_line!(Pick "aaa", "c3") ); }, ); @@ -47,15 +44,12 @@ fn visual_mode_swap_down_from_top_to_bottom_selection() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - " pick aaa c5", - "{Selected} > pick aaa c2{Pad( )}", - "{Selected} > pick aaa c3{Pad( )}", - "{Selected} > pick aaa c4{Pad( )}" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Pick "aaa", "c5"), + action_line!(Selected Pick "aaa", "c2"), + action_line!(Selected Pick "aaa", "c3"), + action_line!(Selected Pick "aaa", "c4") ); }, ); @@ -85,15 +79,12 @@ fn visual_mode_swap_down_from_bottom_to_top_selection() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - " pick aaa c5", - "{Selected} > pick aaa c2{Pad( )}", - "{Selected} > pick aaa c3{Pad( )}", - "{Selected} > pick aaa c4{Pad( )}" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Pick "aaa", "c5"), + action_line!(Selected Pick "aaa", "c2"), + action_line!(Selected Pick "aaa", "c3"), + action_line!(Selected Pick "aaa", "c4") ); }, ); @@ -124,15 +115,12 @@ fn visual_mode_swap_down_to_limit_from_bottom_to_top_selection() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - " pick aaa c5", - "{Selected} > pick aaa c2{Pad( )}", - "{Selected} > pick aaa c3{Pad( )}", - "{Selected} > pick aaa c4{Pad( )}" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Pick "aaa", "c5"), + action_line!(Selected Pick "aaa", "c2"), + action_line!(Selected Pick "aaa", "c3"), + action_line!(Selected Pick "aaa", "c4") ); }, ); @@ -161,15 +149,12 @@ fn visual_mode_swap_down_to_limit_from_top_to_bottom_selection() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - " pick aaa c5", - "{Selected} > pick aaa c2{Pad( )}", - "{Selected} > pick aaa c3{Pad( )}", - "{Selected} > pick aaa c4{Pad( )}" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Pick "aaa", "c5"), + action_line!(Selected Pick "aaa", "c2"), + action_line!(Selected Pick "aaa", "c3"), + action_line!(Selected Pick "aaa", "c4") ); }, ); @@ -189,13 +174,10 @@ fn normal_mode_change_swap_up() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - "{Selected} > pick aaa c3{Pad( )}", - " pick aaa c2" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Selected Pick "aaa", "c3"), + action_line!(Pick "aaa", "c2") ); }, ); @@ -223,15 +205,12 @@ fn visual_mode_swap_up_from_top_to_bottom_selection() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c2{Pad( )}", - "{Selected} > pick aaa c3{Pad( )}", - "{Selected} > pick aaa c4{Pad( )}", - " pick aaa c1", - " pick aaa c5" + Body view_data, + action_line!(Selected Pick "aaa", "c2"), + action_line!(Selected Pick "aaa", "c3"), + action_line!(Selected Pick "aaa", "c4"), + action_line!(Pick "aaa", "c1"), + action_line!(Pick "aaa", "c5") ); }, ); @@ -261,15 +240,12 @@ fn visual_mode_swap_up_from_bottom_to_top_selection() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c2{Pad( )}", - "{Selected} > pick aaa c3{Pad( )}", - "{Selected} > pick aaa c4{Pad( )}", - " pick aaa c1", - " pick aaa c5" + Body view_data, + action_line!(Selected Pick "aaa", "c2"), + action_line!(Selected Pick "aaa", "c3"), + action_line!(Selected Pick "aaa", "c4"), + action_line!(Pick "aaa", "c1"), + action_line!(Pick "aaa", "c5") ); }, ); @@ -298,15 +274,12 @@ fn visual_mode_swap_up_to_limit_from_top_to_bottom_selection() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c2{Pad( )}", - "{Selected} > pick aaa c3{Pad( )}", - "{Selected} > pick aaa c4{Pad( )}", - " pick aaa c1", - " pick aaa c5" + Body view_data, + action_line!(Selected Pick "aaa", "c2"), + action_line!(Selected Pick "aaa", "c3"), + action_line!(Selected Pick "aaa", "c4"), + action_line!(Pick "aaa", "c1"), + action_line!(Pick "aaa", "c5") ); }, ); @@ -337,15 +310,12 @@ fn visual_mode_swap_up_to_limit_from_bottom_to_top_selection() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c2{Pad( )}", - "{Selected} > pick aaa c3{Pad( )}", - "{Selected} > pick aaa c4{Pad( )}", - " pick aaa c1", - " pick aaa c5" + Body view_data, + action_line!(Selected Pick "aaa", "c2"), + action_line!(Selected Pick "aaa", "c3"), + action_line!(Selected Pick "aaa", "c4"), + action_line!(Pick "aaa", "c1"), + action_line!(Pick "aaa", "c5") ); }, ); diff --git a/src/core/src/modules/list/tests/toggle_break.rs b/src/core/src/modules/list/tests/toggle_break.rs index e1f26cf..bd355a1 100644 --- a/src/core/src/modules/list/tests/toggle_break.rs +++ b/src/core/src/modules/list/tests/toggle_break.rs @@ -1,7 +1,8 @@ -use view::assert_rendered_output; +use todo_file::{errors::ParseError, Action::Pick}; +use view::{assert_rendered_output, testutil::LinePattern}; use super::*; -use crate::testutil::module_test; +use crate::{action_line, testutil::module_test}; #[test] fn change_toggle_break_add() { @@ -13,12 +14,9 @@ fn change_toggle_break_add() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - " pick aaa c1", - "{Selected} > break {Pad( )}" + Body view_data, + action_line!(Pick "aaa", "c1"), + action_line!(Selected Break) ); }, ); @@ -37,11 +35,8 @@ fn change_toggle_break_remove() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c1{Pad( )}" + Body view_data, + action_line!(Selected Pick "aaa", "c1") ); }, ); @@ -57,12 +52,9 @@ fn change_toggle_break_above_existing() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c1{Pad( )}", - " break" + Body view_data, + action_line!(Selected Pick "aaa", "c1"), + action_line!(Break) ); }, ); diff --git a/src/core/src/modules/list/tests/undo_redo.rs b/src/core/src/modules/list/tests/undo_redo.rs index 0d04493..0c0fc39 100644 --- a/src/core/src/modules/list/tests/undo_redo.rs +++ b/src/core/src/modules/list/tests/undo_redo.rs @@ -1,7 +1,7 @@ use view::assert_rendered_output; use super::*; -use crate::{assert_results, process::Artifact, testutil::module_test}; +use crate::{action_line, assert_results, process::Artifact, testutil::module_test}; #[test] fn normal_mode_undo() { @@ -16,11 +16,8 @@ fn normal_mode_undo() { Artifact::Event(Event::from(StandardEvent::Undo)) ); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - test_context.build_view_data(&mut module), - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c1{Pad( )}" + Body test_context.build_view_data(&mut module), + action_line!(Selected Pick "aaa", "c1") ); assert_eq!(module.state, ListState::Normal); }, @@ -42,12 +39,9 @@ fn normal_mode_undo_visual_mode_change() { let mut module = create_list(&Config::new(), test_context.take_todo_file()); _ = test_context.handle_all_events(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - test_context.build_view_data(&mut module), - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c1{Pad( )}", - "{Selected} > pick bbb c2{Pad( )}" + Body test_context.build_view_data(&mut module), + action_line!(Selected Pick "aaa", "c1"), + action_line!(Selected Pick "bbb", "c2") ); assert_eq!(module.state, ListState::Visual); }, @@ -72,11 +66,8 @@ fn normal_mode_redo() { Artifact::Event(Event::from(StandardEvent::Redo)) ); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - test_context.build_view_data(&mut module), - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c1{Pad( )}" + Body test_context.build_view_data(&mut module), + action_line!(Selected Pick "aaa", "c1") ); }, ); @@ -98,12 +89,9 @@ fn normal_mode_redo_visual_mode_change() { let mut module = create_list(&Config::new(), test_context.take_todo_file()); _ = test_context.handle_all_events(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - test_context.build_view_data(&mut module), - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c1{Pad( )}", - "{Selected} > pick bbb c2{Pad( )}" + Body test_context.build_view_data(&mut module), + action_line!(Selected Pick "aaa", "c1"), + action_line!(Selected Pick "bbb", "c2") ); assert_eq!(module.state, ListState::Visual); }, @@ -128,12 +116,9 @@ fn visual_mode_undo() { Artifact::Event(Event::from(StandardEvent::Undo)) ); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - test_context.build_view_data(&mut module), - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c1{Pad( )}", - "{Selected} > pick bbb c2{Pad( )}" + Body test_context.build_view_data(&mut module), + action_line!(Selected Pick "aaa", "c1"), + action_line!(Selected Pick "bbb", "c2") ); }, ); @@ -157,12 +142,9 @@ fn visual_mode_undo_normal_mode_change() { Artifact::Event(Event::from(StandardEvent::Undo)) ); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - test_context.build_view_data(&mut module), - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c1{Pad( )}", - " pick bbb c2" + Body test_context.build_view_data(&mut module), + action_line!(Selected Pick "aaa", "c1"), + action_line!(Pick "bbb", "c2") ); assert_eq!(module.state, ListState::Normal); }, @@ -184,12 +166,9 @@ fn visual_mode_redo() { let mut module = create_list(&Config::new(), test_context.take_todo_file()); _ = test_context.handle_all_events(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - test_context.build_view_data(&mut module), - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c1{Pad( )}", - "{Selected} > pick bbb c2{Pad( )}" + Body test_context.build_view_data(&mut module), + action_line!(Selected Pick "aaa", "c1"), + action_line!(Selected Pick "bbb", "c2") ); assert_eq!(module.state, ListState::Visual); }, @@ -210,12 +189,9 @@ fn visual_mode_redo_normal_mode_change() { let mut module = create_list(&Config::new(), test_context.take_todo_file()); _ = test_context.handle_all_events(&mut module); assert_rendered_output!( - Options AssertRenderOptions::EXCLUDE_STYLE, - test_context.build_view_data(&mut module), - "{TITLE}{HELP}", - "{BODY}", - "{Selected} > pick aaa c1{Pad( )}", - " drop bbb c2" + Body test_context.build_view_data(&mut module), + action_line!(Selected Pick "aaa", "c1"), + action_line!(Drop "bbb", "c2") ); assert_eq!(module.state, ListState::Normal); }, diff --git a/src/core/src/modules/list/tests/visual_mode.rs b/src/core/src/modules/list/tests/visual_mode.rs index d017793..3f44d89 100644 --- a/src/core/src/modules/list/tests/visual_mode.rs +++ b/src/core/src/modules/list/tests/visual_mode.rs @@ -1,8 +1,8 @@ use ::input::KeyCode; -use view::assert_rendered_output; +use view::{assert_rendered_output, render_line}; use super::*; -use crate::{assert_results, process::Artifact, testutil::module_test}; +use crate::{action_line, assert_results, process::Artifact, testutil::module_test}; #[test] fn start() { @@ -14,12 +14,10 @@ fn start() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected}{Normal} > {ActionPick}pick {Normal}aaa c1{Pad( )}", - "{Normal} {ActionPick}pick {Normal}aaa c2", - "{Normal} {ActionPick}pick {Normal}aaa c3" + Body test_context.build_view_data(&mut module), + render_line!(All render_line!(Not Contains "Dimmed"), action_line!(Selected Pick "aaa", "c1")), + action_line!(Pick "aaa", "c2"), + action_line!(Pick "aaa", "c3") ); }, ); @@ -38,12 +36,10 @@ fn start_cursor_down_one() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected}{Normal,Dimmed} > {ActionPick}pick {Normal}aaa c1{Pad( )}", - "{Selected}{Normal} > {ActionPick}pick {Normal}aaa c2{Pad( )}", - "{Normal} {ActionPick}pick {Normal}aaa c3" + Body test_context.build_view_data(&mut module), + render_line!(All render_line!(Contains "Dimmed"), action_line!(Selected Pick "aaa", "c1")), + render_line!(All render_line!(Not Contains "Dimmed"), action_line!(Selected Pick "aaa", "c2")), + action_line!(Pick "aaa", "c3") ); }, ); @@ -69,14 +65,12 @@ fn start_cursor_page_down() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected}{Normal,Dimmed} > {ActionPick}pick {Normal}aaa c1{Pad( )}", - "{Selected}{Normal,Dimmed} > {ActionPick}pick {Normal}aaa c2{Pad( )}", - "{Selected}{Normal} > {ActionPick}pick {Normal}aaa c3{Pad( )}", - "{Normal} {ActionPick}pick {Normal}aaa c4", - "{Normal} {ActionPick}pick {Normal}aaa c5" + Body test_context.build_view_data(&mut module), + render_line!(All render_line!(Contains "Dimmed"), action_line!(Selected Pick "aaa", "c1")), + render_line!(All render_line!(Contains "Dimmed"), action_line!(Selected Pick "aaa", "c2")), + render_line!(All render_line!(Not Contains "Dimmed"), action_line!(Selected Pick "aaa", "c3")), + action_line!(Pick "aaa", "c4"), + action_line!(Pick "aaa", "c5") ); }, ); @@ -105,14 +99,12 @@ fn start_cursor_from_bottom_move_up() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Normal} {ActionPick}pick {Normal}aaa c1", - "{Normal} {ActionPick}pick {Normal}aaa c2", - "{Normal} {ActionPick}pick {Normal}aaa c3", - "{Selected}{Normal} > {ActionPick}pick {Normal}aaa c4{Pad( )}", - "{Selected}{Normal,Dimmed} > {ActionPick}pick {Normal}aaa c5{Pad( )}" + Body test_context.build_view_data(&mut module), + action_line!(Pick "aaa", "c1"), + action_line!(Pick "aaa", "c2"), + action_line!(Pick "aaa", "c3"), + render_line!(All render_line!(Not Contains "Dimmed"), action_line!(Selected Pick "aaa", "c4")), + render_line!(All render_line!(Contains "Dimmed"), action_line!(Selected Pick "aaa", "c5")) ); }, ); @@ -144,14 +136,12 @@ fn start_cursor_from_bottom_to_top() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected}{Normal} > {ActionPick}pick {Normal}aaa c1{Pad( )}", - "{Selected}{Normal,Dimmed} > {ActionPick}pick {Normal}aaa c2{Pad( )}", - "{Selected}{Normal,Dimmed} > {ActionPick}pick {Normal}aaa c3{Pad( )}", - "{Selected}{Normal,Dimmed} > {ActionPick}pick {Normal}aaa c4{Pad( )}", - "{Selected}{Normal,Dimmed} > {ActionPick}pick {Normal}aaa c5{Pad( )}" + Body test_context.build_view_data(&mut module), + render_line!(All render_line!(Not Contains "Dimmed"), action_line!(Selected Pick "aaa", "c1")), + render_line!(All render_line!(Contains "Dimmed"), action_line!(Selected Pick "aaa", "c2")), + render_line!(All render_line!(Contains "Dimmed"), action_line!(Selected Pick "aaa", "c3")), + render_line!(All render_line!(Contains "Dimmed"), action_line!(Selected Pick "aaa", "c4")), + render_line!(All render_line!(Contains "Dimmed"), action_line!(Selected Pick "aaa", "c5")) ); }, ); @@ -172,12 +162,10 @@ fn action_change_top_bottom() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected}{Normal,Dimmed} > {ActionReword}reword {Normal}aaa c1{Pad( )}", - "{Selected}{Normal,Dimmed} > {ActionReword}reword {Normal}aaa c2{Pad( )}", - "{Selected}{Normal} > {ActionReword}reword {Normal}aaa c3{Pad( )}" + Body test_context.build_view_data(&mut module), + render_line!(All render_line!(Contains "Dimmed"), action_line!(Selected Reword "aaa", "c1")), + render_line!(All render_line!(Contains "Dimmed"), action_line!(Selected Reword "aaa", "c2")), + render_line!(All render_line!(Not Contains "Dimmed"), action_line!(Selected Reword "aaa", "c3")) ); }, ); @@ -200,12 +188,10 @@ fn action_change_bottom_top() { _ = test_context.handle_all_events(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( - view_data, - "{TITLE}{HELP}", - "{BODY}", - "{Selected}{Normal} > {ActionReword}reword {Normal}aaa c1{Pad( )}", - "{Selected}{Normal,Dimmed} > {ActionReword}reword {Normal}aaa c2{Pad( )}", - "{Selected}{Normal,Dimmed} > {ActionReword}reword {Normal}aaa c3{Pad( )}" + Body test_context.build_view_data(&mut module), + render_line!(All render_line!(Not Contains "Dimmed"), action_line!(Selected Reword "aaa", "c1")), + render_line!(All render_line!(Contains "Dimmed"), action_line!(Selected Reword "aaa", "c2")), + render_line!(All render_line!(Contains "Dimmed"), action_line!(Selected Reword "aaa", "c3")) ); }, ); diff --git a/src/core/src/modules/show_commit/tests.rs b/src/core/src/modules/show_commit/tests.rs index ea33c31..35ea9f8 100644 --- a/src/core/src/modules/show_commit/tests.rs +++ b/src/core/src/modules/show_commit/tests.rs @@ -96,7 +96,7 @@ fn render_overview_minimal_commit() { "{LEADING}", "{IndicatorColor}Commit: {Normal}0123456789abcdef0123456789abcdef", "{BODY}", - format!("{{IndicatorColor}}Date: {{Normal}}{commit_date}").as_str(), + format!("{{IndicatorColor}}Date: {{Normal}}{commit_date}"), "{Normal}", "{IndicatorColor}0{Normal} files with {DiffAddColor}0{Normal} insertions and \ {DiffRemoveColor}0{Normal} deletions" @@ -125,7 +125,7 @@ fn render_overview_minimal_commit_compact() { "{LEADING}", "{Normal}01234567", "{BODY}", - format!("{{IndicatorColor}}D: {{Normal}}{commit_date}").as_str(), + format!("{{IndicatorColor}}D: {{Normal}}{commit_date}"), "{Normal}", "{IndicatorColor}0{Normal} / {DiffAddColor}0{Normal} / {DiffRemoveColor}0" ); @@ -150,10 +150,9 @@ fn render_overview_with_author() { let mut module = create_show_commit(&Config::new(), repo, test_context.take_todo_file()); module.diff = Some(diff); assert_rendered_output!( + Skip 5;2, test_context.build_view_data(&mut module), - render_line!(AnyLine 5), - "{IndicatorColor}Author: {Normal}John Doe ", - render_line!(AnyLine 2) + "{IndicatorColor}Author: {Normal}John Doe " ); }, ); @@ -177,10 +176,9 @@ fn render_overview_with_author_compact() { let mut module = create_show_commit(&Config::new(), repo, test_context.take_todo_file()); module.diff = Some(diff); assert_rendered_output!( + Skip 5;2, test_context.build_view_data(&mut module), - render_line!(AnyLine 5), - "{IndicatorColor}A: {Normal}John Doe ", - render_line!(AnyLine 2) + "{IndicatorColor}A: {Normal}John Doe " ); }, ); @@ -203,10 +201,9 @@ fn render_overview_with_committer() { let mut module = create_show_commit(&Config::new(), repo, test_context.take_todo_file()); module.diff = Some(diff); assert_rendered_output!( + Skip 5;2, test_context.build_view_data(&mut module), - render_line!(AnyLine 5), - "{IndicatorColor}Committer: {Normal}John Doe ", - render_line!(AnyLine 2) + "{IndicatorColor}Committer: {Normal}John Doe " ); }, ); @@ -230,10 +227,9 @@ fn render_overview_with_committer_compact() { let mut module = create_show_commit(&Config::new(), repo, test_context.take_todo_file()); module.diff = Some(diff); assert_rendered_output!( + Skip 5;2, test_context.build_view_data(&mut module), - render_line!(AnyLine 5), - "{IndicatorColor}C: {Normal}John Doe ", - render_line!(AnyLine 2) + "{IndicatorColor}C: {Normal}John Doe " ); }, ); @@ -256,10 +252,9 @@ fn render_overview_with_commit_summary() { let mut module = create_show_commit(&Config::new(), repo, test_context.take_todo_file()); module.diff = Some(diff); assert_rendered_output!( + Skip 5;2, test_context.build_view_data(&mut module), - render_line!(AnyLine 5), - "{Normal}Commit title", - render_line!(AnyLine 2) + "{Normal}Commit title" ); }, ); @@ -282,10 +277,9 @@ fn render_overview_with_commit_body() { let mut module = create_show_commit(&Config::new(), repo, test_context.take_todo_file()); module.diff = Some(diff); assert_rendered_output!( + Skip 5;2, test_context.build_view_data(&mut module), - render_line!(AnyLine 5), - "{Normal}Commit body", - render_line!(AnyLine 2) + "{Normal}Commit body" ); }, ); @@ -309,12 +303,11 @@ fn render_overview_with_commit_summary_and_body() { let mut module = create_show_commit(&Config::new(), repo, test_context.take_todo_file()); module.diff = Some(diff); assert_rendered_output!( + Skip 5;2, test_context.build_view_data(&mut module), - render_line!(AnyLine 5), "{Normal}Commit title", "{Normal}", - "{Normal}Commit body", - render_line!(AnyLine 2) + "{Normal}Commit body" ); }, ); @@ -371,8 +364,8 @@ fn render_overview_with_file_stats() { let mut module = create_show_commit(&Config::new(), repo, test_context.take_todo_file()); module.diff = Some(diff); assert_rendered_output!( + Skip 6, test_context.build_view_data(&mut module), - render_line!(AnyLine 6), "{IndicatorColor}0{Normal} files with {DiffAddColor}0{Normal} insertions and \ {DiffRemoveColor}0{Normal} deletions", "{DiffChangeColor} renamed: {DiffRemoveColor}file.1b{Normal} → {DiffAddColor}file.1a", @@ -440,8 +433,8 @@ fn render_overview_with_file_stats_compact() { let mut module = create_show_commit(&Config::new(), repo, test_context.take_todo_file()); module.diff = Some(diff); assert_rendered_output!( + Skip 6, test_context.build_view_data(&mut module), - render_line!(AnyLine 6), "{IndicatorColor}0{Normal} / {DiffAddColor}0{Normal} / {DiffRemoveColor}0", "{DiffChangeColor}R {DiffRemoveColor}file.1b{Normal}→{DiffAddColor}file.1a", "{DiffAddColor}A file.2a", @@ -469,8 +462,