diff options
author | Tim Oram <dev@mitmaro.ca> | 2021-03-31 09:33:46 -0230 |
---|---|---|
committer | Tim Oram <dev@mitmaro.ca> | 2021-06-12 11:06:54 -0230 |
commit | 3932ed448afa9a7f4442f16342ee1461b33c9d3d (patch) | |
tree | 5f3c16f8ab607d099ba24423259f8d69ece4f4c0 | |
parent | a179df670ed36a82e2e881a1cb24445a7517c588 (diff) |
Avoid view_data resize in modules
Instead of having every module perform a resize of the view_data, return
a mutable reference and have the view do a resize in all cases where
possible.
-rw-r--r-- | src/components/choice/mod.rs | 6 | ||||
-rw-r--r-- | src/components/choice/tests.rs | 10 | ||||
-rw-r--r-- | src/components/confirm/mod.rs | 5 | ||||
-rw-r--r-- | src/components/confirm/tests.rs | 2 | ||||
-rw-r--r-- | src/components/edit/mod.rs | 1 | ||||
-rw-r--r-- | src/components/edit/tests.rs | 27 | ||||
-rw-r--r-- | src/components/help/mod.rs | 6 | ||||
-rw-r--r-- | src/components/help/tests.rs | 8 | ||||
-rw-r--r-- | src/confirm_abort/mod.rs | 5 | ||||
-rw-r--r-- | src/confirm_rebase/mod.rs | 5 | ||||
-rw-r--r-- | src/external_editor/mod.rs | 13 | ||||
-rw-r--r-- | src/insert/mod.rs | 10 | ||||
-rw-r--r-- | src/list/mod.rs | 29 | ||||
-rw-r--r-- | src/list/tests.rs | 77 | ||||
-rw-r--r-- | src/process/error.rs | 8 | ||||
-rw-r--r-- | src/process/modules.rs | 2 | ||||
-rw-r--r-- | src/process/process_module.rs | 2 | ||||
-rw-r--r-- | src/process/tests.rs | 10 | ||||
-rw-r--r-- | src/process/testutil.rs | 15 | ||||
-rw-r--r-- | src/process/util.rs | 6 | ||||
-rw-r--r-- | src/process/window_size_error.rs | 15 | ||||
-rw-r--r-- | src/show_commit/mod.rs | 9 | ||||
-rw-r--r-- | src/show_commit/tests.rs | 84 | ||||
-rw-r--r-- | src/view/mod.rs | 31 | ||||
-rw-r--r-- | src/view/testutil.rs | 22 | ||||
-rw-r--r-- | src/view/view_data.rs | 114 |
26 files changed, 221 insertions, 301 deletions
diff --git a/src/components/choice/mod.rs b/src/components/choice/mod.rs index 332dfc3..1466123 100644 --- a/src/components/choice/mod.rs +++ b/src/components/choice/mod.rs @@ -46,8 +46,7 @@ where T: Clone self.view_data.push_leading_line(ViewLine::new_empty_line()); } - pub fn get_view_data(&mut self, view_width: usize, view_height: usize) -> &ViewData { - self.view_data.set_view_size(view_width, view_height); + pub fn get_view_data(&mut self) -> &mut ViewData { self.view_data.clear_body(); for &(_, ref key, ref description) in &self.options { self.view_data @@ -66,8 +65,7 @@ where T: Clone DisplayColor::IndicatorColor, ))); } - self.view_data.rebuild(); - &self.view_data + &mut self.view_data } pub fn handle_input(&mut self, input: Input) -> Option<&T> { diff --git a/src/components/choice/tests.rs b/src/components/choice/tests.rs index 78720cd..4589b48 100644 --- a/src/components/choice/tests.rs +++ b/src/components/choice/tests.rs @@ -22,7 +22,7 @@ fn create_choices() -> Vec<(TestAction, char, String)> { fn render_options_no_prompt() { let mut module = Choice::new(create_choices()); assert_rendered_output!( - module.get_view_data(100, 100), + module.get_view_data(), "{TITLE}", "{BODY}", "{Normal}a) Description A", @@ -38,7 +38,7 @@ fn render_options_prompt() { let mut module = Choice::new(create_choices()); module.set_prompt(vec![ViewLine::from("Prompt")]); assert_rendered_output!( - module.get_view_data(100, 100), + module.get_view_data(), "{TITLE}", "{LEADING}", "{Normal}Prompt", @@ -57,7 +57,7 @@ fn invalid_selection_character() { let mut module = Choice::new(create_choices()); assert!(module.handle_input(Input::Character('z')).is_none()); assert_rendered_output!( - module.get_view_data(100, 100), + module.get_view_data(), "{TITLE}", "{BODY}", "{Normal}a) Description A", @@ -73,7 +73,7 @@ fn invalid_selection_other() { let mut module = Choice::new(create_choices()); assert!(module.handle_input(Input::Other).is_none()); assert_rendered_output!( - module.get_view_data(100, 100), + module.get_view_data(), "{TITLE}", "{BODY}", "{Normal}a) Description A", @@ -89,7 +89,7 @@ fn valid_selection() { let mut module = Choice::new(create_choices()); assert_eq!(module.handle_input(Input::Character('b')).unwrap(), &TestAction::B); assert_rendered_output!( - module.get_view_data(100, 100), + module.get_view_data(), "{TITLE}", "{BODY}", "{Normal}a) Description A", diff --git a/src/components/confirm/mod.rs b/src/components/confirm/mod.rs index 68f268b..c1db469 100644 --- a/src/components/confirm/mod.rs +++ b/src/components/confirm/mod.rs @@ -24,9 +24,8 @@ impl Confirm { Self { view_data } } - pub fn get_view_data(&mut self, view_width: usize, view_height: usize) -> &ViewData { - self.view_data.set_view_size(view_width, view_height); - &self.view_data + pub fn get_view_data(&mut self) -> &mut ViewData { + &mut self.view_data } pub fn handle_input(&mut self, input: Input) -> Option<bool> { diff --git a/src/components/confirm/tests.rs b/src/components/confirm/tests.rs index f4c4dba..f9c651e 100644 --- a/src/components/confirm/tests.rs +++ b/src/components/confirm/tests.rs @@ -10,7 +10,7 @@ fn render() { String::from("X"), ]); assert_rendered_output!( - module.get_view_data(100, 100), + module.get_view_data(), "{TITLE}", "{BODY}", "{Normal}Prompt message (y,Z/n,X)? " diff --git a/src/components/edit/mod.rs b/src/components/edit/mod.rs index 5894c3a..6feeb16 100644 --- a/src/components/edit/mod.rs +++ b/src/components/edit/mod.rs @@ -76,7 +76,6 @@ impl Edit { "Enter to finish", DisplayColor::IndicatorColor, )])); - view_data.rebuild(); view_data.ensure_column_visible(pointer); view_data.ensure_line_visible(0); } diff --git a/src/components/edit/tests.rs b/src/components/edit/tests.rs index f913c9d..7cc6ebb 100644 --- a/src/components/edit/tests.rs +++ b/src/components/edit/tests.rs @@ -8,7 +8,6 @@ fn with_description() { module.set_description("Description"); module.handle_input(Input::Right); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -29,7 +28,6 @@ fn with_label() { module.set_label("Label: "); module.handle_input(Input::Right); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -48,7 +46,6 @@ fn with_label_and_description() { module.set_label("Label: "); module.handle_input(Input::Right); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -68,7 +65,6 @@ fn move_cursor_end() { module.set_content("foobar"); module.handle_input(Input::Right); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -85,7 +81,6 @@ fn move_cursor_1_left() { module.set_content("foobar"); module.handle_input(Input::Left); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -103,7 +98,6 @@ fn move_cursor_2_from_start() { module.handle_input(Input::Left); module.handle_input(Input::Left); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -122,7 +116,6 @@ fn move_cursor_1_from_start() { module.handle_input(Input::Left); } let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -141,7 +134,6 @@ fn move_cursor_to_start() { module.handle_input(Input::Left); } let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -158,7 +150,6 @@ fn move_cursor_to_home() { module.set_content("foobar"); module.handle_input(Input::Home); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -178,7 +169,6 @@ fn move_cursor_to_end() { } module.handle_input(Input::End); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -197,7 +187,6 @@ fn move_cursor_on_empty_content() { module.handle_input(Input::End); module.handle_input(Input::Home); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -216,7 +205,6 @@ fn move_cursor_attempt_past_start() { module.handle_input(Input::Left); } let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -235,7 +223,6 @@ fn move_cursor_attempt_past_end() { module.handle_input(Input::Right); } let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -254,7 +241,6 @@ fn multiple_width_unicode_single_width() { module.handle_input(Input::Left); } let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -273,7 +259,6 @@ fn multiple_width_unicode_emoji() { module.handle_input(Input::Left); } let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -290,7 +275,6 @@ fn add_character_end() { module.set_content("abcd"); module.handle_input(Input::Character('x')); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -308,7 +292,6 @@ fn add_character_one_from_end() { module.handle_input(Input::Left); module.handle_input(Input::Character('x')); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -328,7 +311,6 @@ fn add_character_one_from_start() { } module.handle_input(Input::Character('x')); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -348,7 +330,6 @@ fn add_character_at_start() { } module.handle_input(Input::Character('x')); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -365,7 +346,6 @@ fn backspace_at_end() { module.set_content("abcd"); module.handle_input(Input::Backspace); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -383,7 +363,6 @@ fn backspace_one_from_end() { module.handle_input(Input::Left); module.handle_input(Input::Backspace); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -403,7 +382,6 @@ fn backspace_one_from_start() { } module.handle_input(Input::Backspace); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -423,7 +401,6 @@ fn backspace_at_start() { } module.handle_input(Input::Backspace); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -440,7 +417,6 @@ fn delete_at_end() { module.set_content("abcd"); module.handle_input(Input::Delete); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -458,7 +434,6 @@ fn delete_last_character() { module.handle_input(Input::Left); module.handle_input(Input::Delete); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -478,7 +453,6 @@ fn delete_second_character() { } module.handle_input(Input::Delete); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, @@ -498,7 +472,6 @@ fn delete_first_character() { } module.handle_input(Input::Delete); let view_data = &mut ViewData::new(); - view_data.set_view_size(500, 30); module.update_view_data(view_data); assert_rendered_output!( view_data, diff --git a/src/components/help/mod.rs b/src/components/help/mod.rs index a476042..0003855 100644 --- a/src/components/help/mod.rs +++ b/src/components/help/mod.rs @@ -66,10 +66,8 @@ impl Help { } } - pub fn get_view_data(&mut self, view_width: usize, view_height: usize) -> &ViewData { - self.view_data.set_view_size(view_width, view_height); - self.view_data.rebuild(); - &self.view_data + pub fn get_view_data(&mut self) -> &mut ViewData { + &mut self.view_data } pub fn handle_input(&mut self, input: Input) { diff --git a/src/components/help/tests.rs b/src/components/help/tests.rs index 02df352..463f3e5 100644 --- a/src/components/help/tests.rs +++ b/src/components/help/tests.rs @@ -8,10 +8,10 @@ use crate::assert_rendered_output; fn empty() { let mut module = Help::new_from_keybindings(&[]); assert_rendered_output!( - module.get_view_data(100, 100), + module.get_view_data(), "{TITLE}", "{LEADING}", - "{Normal,Underline} Key Action{Normal,Underline}{Pad ,89}", + "{Normal,Underline} Key Action{Normal,Underline}{Pad }", "{TRAILING}", "{IndicatorColor}Press any key to close" ); @@ -25,10 +25,10 @@ fn from_key_bindings() { (vec![String::from("b")], String::from("Description B")), ]); assert_rendered_output!( - module.get_view_data(100, 100), + module.get_view_data(), "{TITLE}", "{LEADING}", - "{Normal,Underline} Key Action{Normal,Underline}{Pad ,89}", + "{Normal,Underline} Key Action{Normal,Underline}{Pad }", "{BODY}", "{IndicatorColor} a{Normal,Dimmed}|{Normal}Description A", "{IndicatorColor} b{Normal,Dimmed}|{Normal}Description B", diff --git a/src/confirm_abort/mod.rs b/src/confirm_abort/mod.rs index 1c8aada..e1a3b9a 100644 --- a/src/confirm_abort/mod.rs +++ b/src/confirm_abort/mod.rs @@ -11,9 +11,8 @@ pub struct ConfirmAbort { } impl ProcessModule for ConfirmAbort { - fn build_view_data(&mut self, view: &View<'_>, _: &TodoFile) -> &ViewData { - let view_size = view.get_view_size(); - self.dialog.get_view_data(view_size.width(), view_size.height()) + fn build_view_data(&mut self, _: &View<'_>, _: &TodoFile) -> &mut ViewData { + self.dialog.get_view_data() } fn handle_input(&mut self, view: &mut View<'_>, rebase_todo: &mut TodoFile) -> ProcessResult { diff --git a/src/confirm_rebase/mod.rs b/src/confirm_rebase/mod.rs index 5c9a5b7..0b431ae 100644 --- a/src/confirm_rebase/mod.rs +++ b/src/confirm_rebase/mod.rs @@ -11,9 +11,8 @@ pub struct ConfirmRebase { } impl ProcessModule for ConfirmRebase { - fn build_view_data(&mut self, view: &View<'_>, _: &TodoFile) -> &ViewData { - let view_size = view.get_view_size(); - self.dialog.get_view_data(view_size.width(), view_size.height()) + fn build_view_data(&mut self, _: &View<'_>, _: &TodoFile) -> &mut ViewData { + self.dialog.get_view_data() } fn handle_input(&mut self, view: &mut View<'_>, _: &mut TodoFile) -> ProcessResult { diff --git a/src/external_editor/mod.rs b/src/external_editor/mod.rs index c91dd86..fca46fd 100644 --- a/src/external_editor/mod.rs +++ b/src/external_editor/mod.rs @@ -48,23 +48,18 @@ impl ProcessModule for ExternalEditor { self.view_data.reset(); } - fn build_view_data(&mut self, view: &View<'_>, _: &TodoFile) -> &ViewData { - let view_width = view.get_view_size().width(); - let view_height = view.get_view_size().height(); - + fn build_view_data(&mut self, _: &View<'_>, _: &TodoFile) -> &mut ViewData { match self.state { ExternalEditorState::Active => { self.view_data.clear(); self.view_data.push_leading_line(ViewLine::from("Editing...")); - self.view_data.set_view_size(view_width, view_height); - self.view_data.rebuild(); - &self.view_data + &mut self.view_data }, - ExternalEditorState::Empty => self.empty_choice.get_view_data(view_width, view_height), + ExternalEditorState::Empty => self.empty_choice.get_view_data(), ExternalEditorState::Error(ref error) => { self.error_choice .set_prompt(error.chain().map(|c| ViewLine::from(format!("{:#}", c))).collect()); - self.error_choice.get_view_data(view_width, view_height) + self.error_choice.get_view_data() }, } } diff --git a/src/insert/mod.rs b/src/insert/mod.rs index e2804a3..154c613 100644 --- a/src/insert/mod.rs +++ b/src/insert/mod.rs @@ -28,17 +28,13 @@ impl ProcessModule for Insert { ProcessResult::new() } - fn build_view_data(&mut self, view: &View<'_>, _: &TodoFile) -> &ViewData { - let view_width = view.get_view_size().width(); - let view_height = view.get_view_size().height(); - + fn build_view_data(&mut self, _: &View<'_>, _: &TodoFile) -> &mut ViewData { match self.state { - InsertState::Prompt => self.action_choices.get_view_data(view_width, view_height), + InsertState::Prompt => self.action_choices.get_view_data(), InsertState::Edit => { self.edit_view_data.clear(); - self.edit_view_data.set_view_size(view_width, view_height); self.edit.update_view_data(&mut self.edit_view_data); - &self.edit_view_data + &mut self.edit_view_data }, } } diff --git a/src/list/mod.rs b/src/list/mod.rs index 3316b6c..22bbe56 100644 --- a/src/list/mod.rs +++ b/src/list/mod.rs @@ -34,18 +34,15 @@ pub struct List<'l> { } impl<'l> ProcessModule for List<'l> { - fn build_view_data(&mut self, view: &View<'_>, todo_file: &TodoFile) -> &ViewData { - let view_width = view.get_view_size().width(); - let view_height = view.get_view_size().height(); + fn build_view_data(&mut self, view: &View<'_>, todo_file: &TodoFile) -> &mut ViewData { self.view_data.clear(); - self.view_data.set_view_size(view_width, view_height); match self.state { ListState::Normal => self.get_normal_mode_view_data(todo_file, view), ListState::Visual => self.get_visual_mode_view_data(todo_file, view), ListState::Edit => { self.edit.update_view_data(&mut self.view_data); - &self.view_data + &mut self.view_data }, } } @@ -103,9 +100,8 @@ impl<'l> List<'l> { } } - fn update_list_view_data(&mut self, todo_file: &TodoFile, view_width: usize, view_height: usize) { + fn update_list_view_data(&mut self, todo_file: &TodoFile, view_width: usize) { self.view_data.clear(); - self.view_data.set_view_size(view_width, view_height); let is_visual_mode = self.state == ListState::Visual; let selected_index = todo_file.get_selected_line_index(); let visual_index = self.visual_index_start.unwrap_or(selected_index); @@ -131,36 +127,33 @@ impl<'l> List<'l> { ); } } - self.view_data.rebuild(); if let Some(visual_index) = self.visual_index_start { self.view_data.ensure_line_visible(visual_index); } self.view_data.ensure_line_visible(selected_index); } - fn get_visual_mode_view_data(&mut self, todo_file: &TodoFile, view: &View<'_>) -> &ViewData { + fn get_visual_mode_view_data(&mut self, todo_file: &TodoFile, view: &View<'_>) -> &mut ViewData { let view_width = view.get_view_size().width(); - let view_height = view.get_view_size().height(); if self.visual_mode_help.is_active() { - self.visual_mode_help.get_view_data(view_width, view_height) + self.visual_mode_help.get_view_data() } else { - self.update_list_view_data(todo_file, view_width, view_height); - &self.view_data + self.update_list_view_data(todo_file, view_width); + &mut self.view_data } } - fn get_normal_mode_view_data(&mut self, todo_file: &TodoFile, view: &View<'_>) -> &ViewData { + fn get_normal_mode_view_data(&mut self, todo_file: &TodoFile, view: &View<'_>) -> &mut ViewData { let view_width = view.get_view_size().width(); - let view_height = view.get_view_size().height(); if self.normal_mode_help.is_active() { - self.normal_mode_help.get_view_data(view_width, view_height) + self.normal_mode_help.get_view_data() } else { - self.update_list_view_data(todo_file, view_width, view_height); - &self.view_data + self.update_list_view_data(todo_file, view_width); + &mut self.view_data } } diff --git a/src/list/tests.rs b/src/list/tests.rs index 56e3091..6f3aef1 100644 --- a/src/list/tests.rs +++ b/src/list/tests.rs @@ -86,7 +86,6 @@ fn render_compact() { ], ViewState { size: Size::new(30, 100), - ..ViewState::default() }, &[], |test_context: TestContext<'_>| { @@ -126,11 +125,11 @@ fn move_cursor_down_1() { ], ViewState { size: Size::new(120, 4), - ..ViewState::default() }, &[Input::MoveCursorDown], |mut test_context: TestContext<'_>| { let mut module = List::new(test_context.config); + test_context.update_view_data_size(&mut module); test_context.handle_all_inputs(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( @@ -158,11 +157,11 @@ fn move_cursor_down_view_end() { ], ViewState { size: Size::new(120, 4), - ..ViewState::default() }, &[Input::MoveCursorDown; 2], |mut test_context: TestContext<'_>| { let mut module = List::new(test_context.config); + test_context.update_view_data_size(&mut module); test_context.handle_all_inputs(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( @@ -190,11 +189,11 @@ fn move_cursor_down_scroll_1() { ], ViewState { size: Size::new(120, 4), - ..ViewState::default() }, &[Input::MoveCursorDown; 3], |mut test_context: TestContext<'_>| { let mut module = List::new(test_context.config); + test_context.update_view_data_size(&mut module); test_context.handle_all_inputs(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( @@ -222,11 +221,11 @@ fn move_cursor_down_scroll_bottom() { ], ViewState { size: Size::new(120, 4), - ..ViewState::default() }, &[Input::MoveCursorDown; 4], |mut test_context: TestContext<'_>| { let mut module = List::new(test_context.config); + test_context.update_view_data_size(&mut module); test_context.handle_all_inputs(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( @@ -248,7 +247,6 @@ fn move_cursor_down_scroll_bottom_move_up_one() { &["pick aaa c1", "pick aaa c2", "pick aaa c3", "pick aaa c4"], ViewState { size: Size::new(120, 4), - ..ViewState::default() }, &[ Input::MoveCursorDown, @@ -259,6 +257,7 @@ fn move_cursor_down_scroll_bottom_move_up_one() { ], |mut test_context: TestContext<'_>| { let mut module = List::new(test_context.config); + test_context.update_view_data_size(&mut module); test_context.handle_n_inputs(&mut module, 4); test_context.build_view_data(&mut module); test_context.handle_input(&mut module); @@ -282,7 +281,6 @@ fn move_cursor_down_scroll_bottom_move_up_top() { &["pick aaa c1", "pick aaa c2", "pick aaa c3", "pick aaa c4"], ViewState { size: Size::new(120, 4), - ..ViewState::default() }, &[ Input::MoveCursorDown, @@ -295,6 +293,7 @@ fn move_cursor_down_scroll_bottom_move_up_top() { ], |mut test_context: TestContext<'_>| { let mut module = List::new(test_context.config); + test_context.update_view_data_size(&mut module); test_context.handle_n_inputs(&mut module, 4); test_context.build_view_data(&mut module); test_context.handle_n_inputs(&mut module, 3); @@ -318,11 +317,11 @@ fn move_cursor_up_attempt_above_top() { &["pick aaa c1", "pick aaa c2", "pick aaa c3", "pick aaa c4"], ViewState { size: Size::new(120, 4), - ..ViewState::default() }, &[Input::MoveCursorUp, Input::MoveCursorUp], |mut test_context: TestContext<'_>| { let mut module = List::new(test_context.config); + test_context.update_view_data_size(&mut module); test_context.handle_all_inputs(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( @@ -344,11 +343,11 @@ fn move_cursor_down_attempt_below_bottom() { &["pick aaa c1", "pick aaa c2", "pick aaa c3", "pick aaa c4"], ViewState { size: Size::new(120, 4), - ..ViewState::default() }, &[Input::MoveCursorDown; 4], |mut test_context: TestContext<'_>| { let mut module = List::new(test_context.config); + test_context.update_view_data_size(&mut module); test_context.handle_all_inputs(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( @@ -370,11 +369,11 @@ fn move_cursor_page_up_from_top() { &["pick aaa c1", "pick aaa c2", "pick aaa c3", "pick aaa c4"], ViewState { size: Size::new(120, 4), - ..ViewState::default() }, &[Input::MoveCursorPageUp], |mut test_context: TestContext<'_>| { let mut module = List::new(test_context.config); + test_context.update_view_data_size(&mut module); test_context.handle_all_inputs(&mut module); let view_data = test_context.build_view_data(&mut module); assert_rendered_output!( @@ -403,11 +402,11 @@ fn move_cursor_page_up_from_one_page_down() { ], ViewState { size: Size::new(120, 4), - ..ViewState::default() }, &[Input::MoveCursorDown, Input::MoveCursorDown, Input::MoveCursorPageUp], |mut test_context: TestContext<'_>| { let mut module = List::new(test_context.config); + test_context.update_view_data_size(&mut module); test_context.handle_n_inputs(&mut module, 2); test_context.build_view_data(&mut module); test_context.handle_input(&mut module); @@ -438,7 +437,6 @@ fn move_cursor_page_up_from_one_page_down_plus_1() { ], ViewState { size: Size::new(120, 4), - ..ViewState::default() }, &[ Input::MoveCursorDown, @@ -448,6 +446,7 @@ fn move_cursor_page_up_from_one_page_down_plus_1() { ], |mut test_context: TestContext<'_>| { let mut module = List::new(test_context.config); + test_context.update_view_data_size(&mut module); test_context.handle_n_inputs(&mut module, 3); test_context.build_view_data(&mut module); test_context.handle_input(&mut module); @@ -478,11 +477,11 @@ fn move_cursor_page_up_from_one_page_down_minus_1() { ], ViewState { size: Size::new(120, 4), - ..ViewState::default() }, &[Input::MoveCursorDown, Input::MoveCursorDown, Input::MoveCursorPageUp], |mut test_context: TestContext<'_>| { let mut module = List::new(test_context.config); + test_context.update_view_data_size(&mut module); test_context.handle_n_inputs(&mut module, 2); test_context.build_view_data(&mut module); test_context.handle_input(&mut module); @@ -513,7 +512,6 @@ fn move_cursor_page_up_from_bottom() { ], ViewState { size: Size::new(120, 4), - ..ViewState::default() }, &[ Input::MoveCursorDown, @@ -525,6 +523,7 @@ fn move_cursor_page_up_from_bottom() { ], |mut test_context: TestContext<'_>| { let mut module = List::new(test_context.config); + test_context.update_view_data_size(&mut module); test_context.handle_n_inputs(&mut module, 5); test_context.build_view_data(&mut module); test_context.handle_input(&mut module); @@ -550,6 +549,7 @@ fn move_cursor_page_home() { &[Input::MoveCursorEnd], |mut test_context: TestContext<'_>| { let mut module = List::new(test_context.config); + test_context.update_view_data_size(&mut module); test_context.handle_n_inputs(&mut module, 5); test_context.build_view_data(&mut module); test_context.handle_input(&mut module); @@ -581,6 +581,7 @@ fn move_cursor_page_end() { ], |mut test_context: TestContext<'_>| { let mut module = List::new(test_context.config); + test_context.update_view_data_size(&mut module); test_context.handle_n_inputs(&mut module, 5); test_context.build_view_data(&mut module); test_context.handle_input(&mut module); @@ -612,7 +613,6 @@ fn move_cursor_page_down_from_bottom() { ], ViewState { size: Size::new(120, 4), - ..ViewState::default() }, &[ Input::MoveCursorDown, @@ -624,6 +624,7 @@ fn move_cursor_page_down_from_bottom() { ], |mut test_context: TestContext<'_>| { let mut module = List::new(test_context.config); + test_context.update_view_data_size(&mut module); |