summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Oram <dev@mitmaro.ca>2021-03-31 09:33:46 -0230
committerTim Oram <dev@mitmaro.ca>2021-06-12 11:06:54 -0230
commit3932ed448afa9a7f4442f16342ee1461b33c9d3d (patch)
tree5f3c16f8ab607d099ba24423259f8d69ece4f4c0
parenta179df670ed36a82e2e881a1cb24445a7517c588 (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.rs6
-rw-r--r--src/components/choice/tests.rs10
-rw-r--r--src/components/confirm/mod.rs5
-rw-r--r--src/components/confirm/tests.rs2
-rw-r--r--src/components/edit/mod.rs1
-rw-r--r--src/components/edit/tests.rs27
-rw-r--r--src/components/help/mod.rs6
-rw-r--r--src/components/help/tests.rs8
-rw-r--r--src/confirm_abort/mod.rs5
-rw-r--r--src/confirm_rebase/mod.rs5
-rw-r--r--src/external_editor/mod.rs13
-rw-r--r--src/insert/mod.rs10
-rw-r--r--src/list/mod.rs29
-rw-r--r--src/list/tests.rs77
-rw-r--r--src/process/error.rs8
-rw-r--r--src/process/modules.rs2
-rw-r--r--src/process/process_module.rs2
-rw-r--r--src/process/tests.rs10
-rw-r--r--src/process/testutil.rs15
-rw-r--r--src/process/util.rs6
-rw-r--r--src/process/window_size_error.rs15
-rw-r--r--src/show_commit/mod.rs9
-rw-r--r--src/show_commit/tests.rs84
-rw-r--r--src/view/mod.rs31
-rw-r--r--src/view/testutil.rs22
-rw-r--r--src/view/view_data.rs114
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);