refactored managarr table initializer so a mutable app reference can be passed
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use crate::app::App;
|
||||
use crate::models::stateful_list::StatefulList;
|
||||
use crate::models::stateful_table::{SortOption, StatefulTable};
|
||||
use crate::models::stateful_table::SortOption;
|
||||
use crate::models::{HorizontallyScrollableText, Scrollable};
|
||||
use crate::ui::utils::borderless_block;
|
||||
use crate::ui::widgets::managarr_table::ManagarrTable;
|
||||
@@ -14,15 +15,19 @@ mod tests {
|
||||
#[test]
|
||||
fn test_managarr_table_new() {
|
||||
let items = vec!["item1", "item2", "item3"];
|
||||
let mut stateful_table = StatefulTable::default();
|
||||
stateful_table.set_items(items.clone());
|
||||
let mut app = App::test_default();
|
||||
app.data.radarr_data.movies.set_items(items.clone().into_iter().map(|s| {
|
||||
let mut movie = crate::models::radarr_models::Movie::default();
|
||||
movie.title = crate::models::HorizontallyScrollableText::from(s);
|
||||
movie
|
||||
}).collect());
|
||||
|
||||
let managarr_table =
|
||||
ManagarrTable::new(Some(&mut stateful_table), |&s| Row::new(vec![Cell::new(s)]));
|
||||
let managarr_table = ManagarrTable::new(
|
||||
&mut app,
|
||||
|app| Some(&mut app.data.radarr_data.movies),
|
||||
|movie: &crate::models::radarr_models::Movie| Row::new(vec![Cell::new(movie.title.to_string())]),
|
||||
);
|
||||
|
||||
let row_mapper = managarr_table.row_mapper;
|
||||
assert_eq!(managarr_table.content.unwrap().items, items);
|
||||
assert_eq!(row_mapper(&"item1"), Row::new(vec![Cell::new("item1")]));
|
||||
assert_eq!(managarr_table.table_headers, Vec::<String>::new());
|
||||
assert_eq!(managarr_table.constraints, Vec::new());
|
||||
assert_eq!(managarr_table.block, borderless_block());
|
||||
@@ -43,20 +48,24 @@ mod tests {
|
||||
#[test]
|
||||
fn test_managarr_table_new_search_box_populated() {
|
||||
let items = vec!["item1", "item2", "item3"];
|
||||
let mut stateful_table = StatefulTable::default();
|
||||
stateful_table.set_items(items.clone());
|
||||
let mut app = App::test_default();
|
||||
app.data.radarr_data.movies.set_items(items.clone().into_iter().map(|s| {
|
||||
let mut movie = crate::models::radarr_models::Movie::default();
|
||||
movie.title = crate::models::HorizontallyScrollableText::from(s);
|
||||
movie
|
||||
}).collect());
|
||||
let horizontally_scrollable_test = HorizontallyScrollableText {
|
||||
text: "test".to_owned(),
|
||||
offset: AtomicUsize::new(3),
|
||||
};
|
||||
stateful_table.search = Some(horizontally_scrollable_test);
|
||||
app.data.radarr_data.movies.search = Some(horizontally_scrollable_test);
|
||||
|
||||
let managarr_table =
|
||||
ManagarrTable::new(Some(&mut stateful_table), |&s| Row::new(vec![Cell::new(s)]));
|
||||
let managarr_table = ManagarrTable::new(
|
||||
&mut app,
|
||||
|app| Some(&mut app.data.radarr_data.movies),
|
||||
|movie: &crate::models::radarr_models::Movie| Row::new(vec![Cell::new(movie.title.to_string())]),
|
||||
);
|
||||
|
||||
let row_mapper = managarr_table.row_mapper;
|
||||
assert_eq!(managarr_table.content.unwrap().items, items);
|
||||
assert_eq!(row_mapper(&"item1"), Row::new(vec![Cell::new("item1")]));
|
||||
assert_eq!(managarr_table.table_headers, Vec::<String>::new());
|
||||
assert_eq!(managarr_table.constraints, Vec::new());
|
||||
assert_eq!(managarr_table.block, borderless_block());
|
||||
@@ -77,20 +86,24 @@ mod tests {
|
||||
#[test]
|
||||
fn test_managarr_table_new_filter_box_populated() {
|
||||
let items = vec!["item1", "item2", "item3"];
|
||||
let mut stateful_table = StatefulTable::default();
|
||||
stateful_table.set_items(items.clone());
|
||||
let mut app = App::test_default();
|
||||
app.data.radarr_data.movies.set_items(items.clone().into_iter().map(|s| {
|
||||
let mut movie = crate::models::radarr_models::Movie::default();
|
||||
movie.title = crate::models::HorizontallyScrollableText::from(s);
|
||||
movie
|
||||
}).collect());
|
||||
let horizontally_scrollable_test = HorizontallyScrollableText {
|
||||
text: "test".to_owned(),
|
||||
offset: AtomicUsize::new(3),
|
||||
};
|
||||
stateful_table.filter = Some(horizontally_scrollable_test);
|
||||
app.data.radarr_data.movies.filter = Some(horizontally_scrollable_test);
|
||||
|
||||
let managarr_table =
|
||||
ManagarrTable::new(Some(&mut stateful_table), |&s| Row::new(vec![Cell::new(s)]));
|
||||
let managarr_table = ManagarrTable::new(
|
||||
&mut app,
|
||||
|app| Some(&mut app.data.radarr_data.movies),
|
||||
|movie: &crate::models::radarr_models::Movie| Row::new(vec![Cell::new(movie.title.to_string())]),
|
||||
);
|
||||
|
||||
let row_mapper = managarr_table.row_mapper;
|
||||
assert_eq!(managarr_table.content.unwrap().items, items);
|
||||
assert_eq!(row_mapper(&"item1"), Row::new(vec![Cell::new("item1")]));
|
||||
assert_eq!(managarr_table.table_headers, Vec::<String>::new());
|
||||
assert_eq!(managarr_table.constraints, Vec::new());
|
||||
assert_eq!(managarr_table.block, borderless_block());
|
||||
@@ -111,18 +124,22 @@ mod tests {
|
||||
#[test]
|
||||
fn test_managarr_table_headers() {
|
||||
let items = vec!["item1", "item2", "item3"];
|
||||
let mut stateful_table = StatefulTable::default();
|
||||
stateful_table.set_items(items.clone());
|
||||
let mut app = App::test_default();
|
||||
app.data.radarr_data.movies.set_items(items.clone().into_iter().map(|s| {
|
||||
let mut movie = crate::models::radarr_models::Movie::default();
|
||||
movie.title = crate::models::HorizontallyScrollableText::from(s);
|
||||
movie
|
||||
}).collect());
|
||||
let headers = ["column 1", "column 2"];
|
||||
|
||||
let managarr_table =
|
||||
ManagarrTable::new(Some(&mut stateful_table), |&s| Row::new(vec![Cell::new(s)]))
|
||||
.headers(headers);
|
||||
let managarr_table = ManagarrTable::new(
|
||||
&mut app,
|
||||
|app| Some(&mut app.data.radarr_data.movies),
|
||||
|movie: &crate::models::radarr_models::Movie| Row::new(vec![Cell::new(movie.title.to_string())]),
|
||||
)
|
||||
.headers(headers);
|
||||
|
||||
let row_mapper = managarr_table.row_mapper;
|
||||
assert_eq!(managarr_table.table_headers, headers);
|
||||
assert_eq!(managarr_table.content.unwrap().items, items);
|
||||
assert_eq!(row_mapper(&"item1"), Row::new(vec![Cell::new("item1")]));
|
||||
assert_eq!(managarr_table.constraints, Vec::new());
|
||||
assert_eq!(managarr_table.block, borderless_block());
|
||||
assert_eq!(managarr_table.margin, 0);
|
||||
@@ -142,18 +159,22 @@ mod tests {
|
||||
#[test]
|
||||
fn test_managarr_table_constraints() {
|
||||
let items = vec!["item1", "item2", "item3"];
|
||||
let mut stateful_table = StatefulTable::default();
|
||||
stateful_table.set_items(items.clone());
|
||||
let mut app = App::test_default();
|
||||
app.data.radarr_data.movies.set_items(items.clone().into_iter().map(|s| {
|
||||
let mut movie = crate::models::radarr_models::Movie::default();
|
||||
movie.title = crate::models::HorizontallyScrollableText::from(s);
|
||||
movie
|
||||
}).collect());
|
||||
let constraints = [Constraint::Length(1), Constraint::Fill(1)];
|
||||
|
||||
let managarr_table =
|
||||
ManagarrTable::new(Some(&mut stateful_table), |&s| Row::new(vec![Cell::new(s)]))
|
||||
.constraints(constraints);
|
||||
let managarr_table = ManagarrTable::new(
|
||||
&mut app,
|
||||
|app| Some(&mut app.data.radarr_data.movies),
|
||||
|movie: &crate::models::radarr_models::Movie| Row::new(vec![Cell::new(movie.title.to_string())]),
|
||||
)
|
||||
.constraints(constraints);
|
||||
|
||||
let row_mapper = managarr_table.row_mapper;
|
||||
assert_eq!(managarr_table.constraints, constraints);
|
||||
assert_eq!(managarr_table.content.unwrap().items, items);
|
||||
assert_eq!(row_mapper(&"item1"), Row::new(vec![Cell::new("item1")]));
|
||||
assert_eq!(managarr_table.table_headers, Vec::<String>::new());
|
||||
assert_eq!(managarr_table.block, borderless_block());
|
||||
assert_eq!(managarr_table.margin, 0);
|
||||
@@ -185,14 +206,21 @@ mod tests {
|
||||
},
|
||||
]);
|
||||
sort_list.scroll_down();
|
||||
let mut stateful_table = StatefulTable::default();
|
||||
stateful_table.set_items(items.clone());
|
||||
stateful_table.sort = Some(sort_list);
|
||||
let mut app = App::test_default();
|
||||
app.data.radarr_data.movies.set_items(items.clone().into_iter().map(|s| {
|
||||
let mut movie = crate::models::radarr_models::Movie::default();
|
||||
movie.title = crate::models::HorizontallyScrollableText::from(s);
|
||||
movie
|
||||
}).collect());
|
||||
app.data.radarr_data.movies.sort = Some(sort_list);
|
||||
let headers = ["column 1", "column 2"];
|
||||
|
||||
let managarr_table =
|
||||
ManagarrTable::new(Some(&mut stateful_table), |&s| Row::new(vec![Cell::new(s)]))
|
||||
.headers(headers);
|
||||
let managarr_table = ManagarrTable::new(
|
||||
&mut app,
|
||||
|app| Some(&mut app.data.radarr_data.movies),
|
||||
|movie: &crate::models::radarr_models::Movie| Row::new(vec![Cell::new(movie.title.to_string())]),
|
||||
)
|
||||
.headers(headers);
|
||||
|
||||
assert_eq!(
|
||||
managarr_table.parse_headers(),
|
||||
@@ -215,15 +243,22 @@ mod tests {
|
||||
},
|
||||
]);
|
||||
sort_list.scroll_down();
|
||||
let mut stateful_table = StatefulTable::default();
|
||||
stateful_table.set_items(items.clone());
|
||||
stateful_table.sort = Some(sort_list);
|
||||
stateful_table.sort_asc = true;
|
||||
let mut app = App::test_default();
|
||||
app.data.radarr_data.movies.set_items(items.clone().into_iter().map(|s| {
|
||||
let mut movie = crate::models::radarr_models::Movie::default();
|
||||
movie.title = crate::models::HorizontallyScrollableText::from(s);
|
||||
movie
|
||||
}).collect());
|
||||
app.data.radarr_data.movies.sort = Some(sort_list);
|
||||
app.data.radarr_data.movies.sort_asc = true;
|
||||
let headers = ["column 1", "column 2"];
|
||||
|
||||
let managarr_table =
|
||||
ManagarrTable::new(Some(&mut stateful_table), |&s| Row::new(vec![Cell::new(s)]))
|
||||
.headers(headers);
|
||||
let managarr_table = ManagarrTable::new(
|
||||
&mut app,
|
||||
|app| Some(&mut app.data.radarr_data.movies),
|
||||
|movie: &crate::models::radarr_models::Movie| Row::new(vec![Cell::new(movie.title.to_string())]),
|
||||
)
|
||||
.headers(headers);
|
||||
|
||||
assert_eq!(
|
||||
managarr_table.parse_headers(),
|
||||
|
||||
Reference in New Issue
Block a user