test(lidarr): pin table search, filter and selection behaviour
The search and filter blocks a table configures were asserted nowhere, so transposing them was invisible. Selections were also left at index 0 in every test, which made current_selection() and items[0] indistinguishable, including for the profile lists inside the edit and add prompts.
This commit is contained in:
8 files changed
+419
-80
No files matched your search
@@ -196,6 +196,40 @@ mod tests {
|
||||
assert_eq!(app.get_current_route(), ActiveLidarrBlock::History.into());
|
||||
assert!(!app.should_refresh);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_search_history_key() {
|
||||
let mut app = App::test_default();
|
||||
app.data.lidarr_data.history.set_items(history_vec());
|
||||
app.push_navigation_stack(ActiveLidarrBlock::History.into());
|
||||
|
||||
HistoryHandler::new(
|
||||
DEFAULT_KEYBINDINGS.search.key,
|
||||
&mut app,
|
||||
ActiveLidarrBlock::History,
|
||||
None,
|
||||
)
|
||||
.handle();
|
||||
|
||||
assert_navigation_pushed!(app, ActiveLidarrBlock::SearchHistory.into());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_filter_history_key() {
|
||||
let mut app = App::test_default();
|
||||
app.data.lidarr_data.history.set_items(history_vec());
|
||||
app.push_navigation_stack(ActiveLidarrBlock::History.into());
|
||||
|
||||
HistoryHandler::new(
|
||||
DEFAULT_KEYBINDINGS.filter.key,
|
||||
&mut app,
|
||||
ActiveLidarrBlock::History,
|
||||
None,
|
||||
)
|
||||
.handle();
|
||||
|
||||
assert_navigation_pushed!(app, ActiveLidarrBlock::FilterHistory.into());
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
@@ -1076,10 +1076,16 @@ mod tests {
|
||||
.set_index(0, ADD_ARTIST_SELECTION_BLOCKS.len() - 1);
|
||||
app.data.lidarr_data.prompt_confirm = true;
|
||||
let mut add_searched_artists = StatefulTable::default();
|
||||
add_searched_artists.set_items(vec![add_artist_search_result()]);
|
||||
let mut decoy_search_result = add_artist_search_result();
|
||||
decoy_search_result.foreign_artist_id = "decoy-foreign-id".to_owned();
|
||||
decoy_search_result.artist_name = "Decoy Artist".into();
|
||||
add_searched_artists.set_items(vec![decoy_search_result, add_artist_search_result()]);
|
||||
add_searched_artists.select_index(Some(1));
|
||||
app.data.lidarr_data.add_searched_artists = Some(add_searched_artists);
|
||||
app.data.lidarr_data.quality_profile_map = BiMap::from_iter([(1, "Test".to_owned())]);
|
||||
app.data.lidarr_data.metadata_profile_map = BiMap::from_iter([(1, "Test".to_owned())]);
|
||||
app.data.lidarr_data.quality_profile_map =
|
||||
BiMap::from_iter([(1111, "Any".to_owned()), (2222, "Lossless".to_owned())]);
|
||||
app.data.lidarr_data.metadata_profile_map =
|
||||
BiMap::from_iter([(3333, "None".to_owned()), (4444, "Standard".to_owned())]);
|
||||
app.data.lidarr_data.add_artist_modal = Some(AddArtistModal {
|
||||
tags: "usenet, testing".into(),
|
||||
..AddArtistModal::default()
|
||||
@@ -1092,6 +1098,15 @@ mod tests {
|
||||
.unwrap()
|
||||
.monitor_list
|
||||
.set_items(Vec::from_iter(MonitorType::iter()));
|
||||
app
|
||||
.data
|
||||
.lidarr_data
|
||||
.add_artist_modal
|
||||
.as_mut()
|
||||
.unwrap()
|
||||
.monitor_list
|
||||
.state
|
||||
.select(Some(1));
|
||||
app
|
||||
.data
|
||||
.lidarr_data
|
||||
@@ -1100,6 +1115,15 @@ mod tests {
|
||||
.unwrap()
|
||||
.monitor_new_items_list
|
||||
.set_items(Vec::from_iter(NewItemMonitorType::iter()));
|
||||
app
|
||||
.data
|
||||
.lidarr_data
|
||||
.add_artist_modal
|
||||
.as_mut()
|
||||
.unwrap()
|
||||
.monitor_new_items_list
|
||||
.state
|
||||
.select(Some(1));
|
||||
app
|
||||
.data
|
||||
.lidarr_data
|
||||
@@ -1107,7 +1131,16 @@ mod tests {
|
||||
.as_mut()
|
||||
.unwrap()
|
||||
.quality_profile_list
|
||||
.set_items(vec!["Test".to_owned()]);
|
||||
.set_items(vec!["Any".to_owned(), "Lossless".to_owned()]);
|
||||
app
|
||||
.data
|
||||
.lidarr_data
|
||||
.add_artist_modal
|
||||
.as_mut()
|
||||
.unwrap()
|
||||
.quality_profile_list
|
||||
.state
|
||||
.select(Some(1));
|
||||
app
|
||||
.data
|
||||
.lidarr_data
|
||||
@@ -1115,7 +1148,16 @@ mod tests {
|
||||
.as_mut()
|
||||
.unwrap()
|
||||
.metadata_profile_list
|
||||
.set_items(vec!["Test".to_owned()]);
|
||||
.set_items(vec!["None".to_owned(), "Standard".to_owned()]);
|
||||
app
|
||||
.data
|
||||
.lidarr_data
|
||||
.add_artist_modal
|
||||
.as_mut()
|
||||
.unwrap()
|
||||
.metadata_profile_list
|
||||
.state
|
||||
.select(Some(1));
|
||||
app
|
||||
.data
|
||||
.lidarr_data
|
||||
@@ -1123,22 +1165,37 @@ mod tests {
|
||||
.as_mut()
|
||||
.unwrap()
|
||||
.root_folder_list
|
||||
.set_items(vec![RootFolder {
|
||||
path: "/music".to_owned(),
|
||||
..RootFolder::default()
|
||||
}]);
|
||||
.set_items(vec![
|
||||
RootFolder {
|
||||
path: "/decoy".to_owned(),
|
||||
..RootFolder::default()
|
||||
},
|
||||
RootFolder {
|
||||
path: "/music".to_owned(),
|
||||
..RootFolder::default()
|
||||
},
|
||||
]);
|
||||
app
|
||||
.data
|
||||
.lidarr_data
|
||||
.add_artist_modal
|
||||
.as_mut()
|
||||
.unwrap()
|
||||
.root_folder_list
|
||||
.state
|
||||
.select(Some(1));
|
||||
let expected_add_artist_body = AddArtistBody {
|
||||
foreign_artist_id: "test-foreign-id".to_string(),
|
||||
artist_name: "Test Artist".to_string(),
|
||||
monitored: true,
|
||||
root_folder_path: "/music".to_string(),
|
||||
quality_profile_id: 1,
|
||||
metadata_profile_id: 1,
|
||||
quality_profile_id: 2222,
|
||||
metadata_profile_id: 4444,
|
||||
tags: Vec::default(),
|
||||
tag_input_string: Some("usenet, testing".to_owned()),
|
||||
add_options: AddArtistOptions {
|
||||
monitor: MonitorType::All,
|
||||
monitor_new_items: NewItemMonitorType::All,
|
||||
monitor: MonitorType::Future,
|
||||
monitor_new_items: NewItemMonitorType::None,
|
||||
search_for_missing_albums: true,
|
||||
},
|
||||
};
|
||||
@@ -1468,10 +1525,16 @@ mod tests {
|
||||
.selected_block
|
||||
.set_index(0, ADD_ARTIST_SELECTION_BLOCKS.len() - 1);
|
||||
let mut add_searched_artists = StatefulTable::default();
|
||||
add_searched_artists.set_items(vec![add_artist_search_result()]);
|
||||
let mut decoy_search_result = add_artist_search_result();
|
||||
decoy_search_result.foreign_artist_id = "decoy-foreign-id".to_owned();
|
||||
decoy_search_result.artist_name = "Decoy Artist".into();
|
||||
add_searched_artists.set_items(vec![decoy_search_result, add_artist_search_result()]);
|
||||
add_searched_artists.select_index(Some(1));
|
||||
app.data.lidarr_data.add_searched_artists = Some(add_searched_artists);
|
||||
app.data.lidarr_data.quality_profile_map = BiMap::from_iter([(1, "Test".to_owned())]);
|
||||
app.data.lidarr_data.metadata_profile_map = BiMap::from_iter([(1, "Test".to_owned())]);
|
||||
app.data.lidarr_data.quality_profile_map =
|
||||
BiMap::from_iter([(1111, "Any".to_owned()), (2222, "Lossless".to_owned())]);
|
||||
app.data.lidarr_data.metadata_profile_map =
|
||||
BiMap::from_iter([(3333, "None".to_owned()), (4444, "Standard".to_owned())]);
|
||||
let mut add_artist_modal = AddArtistModal {
|
||||
tags: "usenet, testing".into(),
|
||||
..AddArtistModal::default()
|
||||
@@ -1479,15 +1542,22 @@ mod tests {
|
||||
add_artist_modal
|
||||
.monitor_list
|
||||
.set_items(Vec::from_iter(MonitorType::iter()));
|
||||
add_artist_modal.monitor_list.state.select(Some(1));
|
||||
add_artist_modal
|
||||
.monitor_new_items_list
|
||||
.set_items(Vec::from_iter(NewItemMonitorType::iter()));
|
||||
add_artist_modal
|
||||
.monitor_new_items_list
|
||||
.state
|
||||
.select(Some(1));
|
||||
add_artist_modal
|
||||
.quality_profile_list
|
||||
.set_items(vec!["Test".to_owned()]);
|
||||
.set_items(vec!["Any".to_owned(), "Lossless".to_owned()]);
|
||||
add_artist_modal.quality_profile_list.state.select(Some(1));
|
||||
add_artist_modal
|
||||
.metadata_profile_list
|
||||
.set_items(vec!["Test".to_owned()]);
|
||||
.set_items(vec!["None".to_owned(), "Standard".to_owned()]);
|
||||
add_artist_modal.metadata_profile_list.state.select(Some(1));
|
||||
add_artist_modal.root_folder_list.set_items(vec![
|
||||
RootFolder {
|
||||
id: 1,
|
||||
@@ -1511,13 +1581,13 @@ mod tests {
|
||||
artist_name: "Test Artist".to_string(),
|
||||
monitored: true,
|
||||
root_folder_path: "/nfs2".to_string(),
|
||||
quality_profile_id: 1,
|
||||
metadata_profile_id: 1,
|
||||
quality_profile_id: 2222,
|
||||
metadata_profile_id: 4444,
|
||||
tags: Vec::default(),
|
||||
tag_input_string: Some("usenet, testing".to_owned()),
|
||||
add_options: AddArtistOptions {
|
||||
monitor: Default::default(),
|
||||
monitor_new_items: Default::default(),
|
||||
monitor: MonitorType::Future,
|
||||
monitor_new_items: NewItemMonitorType::None,
|
||||
search_for_missing_albums: true,
|
||||
},
|
||||
};
|
||||
@@ -1641,34 +1711,47 @@ mod tests {
|
||||
add_artist_modal.root_folder_list.state.select(Some(1));
|
||||
add_artist_modal
|
||||
.quality_profile_list
|
||||
.set_items(vec!["Lossless".to_owned()]);
|
||||
.set_items(vec!["Any".to_owned(), "Lossless".to_owned()]);
|
||||
add_artist_modal.quality_profile_list.state.select(Some(1));
|
||||
add_artist_modal
|
||||
.metadata_profile_list
|
||||
.set_items(vec!["Standard".to_owned()]);
|
||||
.set_items(vec!["None".to_owned(), "Standard".to_owned()]);
|
||||
add_artist_modal.metadata_profile_list.state.select(Some(1));
|
||||
add_artist_modal
|
||||
.monitor_list
|
||||
.set_items(Vec::from_iter(MonitorType::iter()));
|
||||
add_artist_modal.monitor_list.state.select(Some(1));
|
||||
add_artist_modal
|
||||
.monitor_new_items_list
|
||||
.set_items(Vec::from_iter(NewItemMonitorType::iter()));
|
||||
add_artist_modal
|
||||
.monitor_new_items_list
|
||||
.state
|
||||
.select(Some(1));
|
||||
app.data.lidarr_data.add_artist_modal = Some(add_artist_modal);
|
||||
app.data.lidarr_data.quality_profile_map = BiMap::from_iter([(1, "Lossless".to_owned())]);
|
||||
app.data.lidarr_data.metadata_profile_map = BiMap::from_iter([(1, "Standard".to_owned())]);
|
||||
app.data.lidarr_data.quality_profile_map =
|
||||
BiMap::from_iter([(1111, "Any".to_owned()), (2222, "Lossless".to_owned())]);
|
||||
app.data.lidarr_data.metadata_profile_map =
|
||||
BiMap::from_iter([(3333, "None".to_owned()), (4444, "Standard".to_owned())]);
|
||||
let mut add_searched_artists = StatefulTable::default();
|
||||
add_searched_artists.set_items(vec![add_artist_search_result()]);
|
||||
let mut decoy_search_result = add_artist_search_result();
|
||||
decoy_search_result.foreign_artist_id = "decoy-foreign-id".to_owned();
|
||||
decoy_search_result.artist_name = "Decoy Artist".into();
|
||||
add_searched_artists.set_items(vec![decoy_search_result, add_artist_search_result()]);
|
||||
add_searched_artists.select_index(Some(1));
|
||||
app.data.lidarr_data.add_searched_artists = Some(add_searched_artists);
|
||||
let expected_add_artist_body = AddArtistBody {
|
||||
foreign_artist_id: "test-foreign-id".to_string(),
|
||||
artist_name: "Test Artist".into(),
|
||||
monitored: true,
|
||||
root_folder_path: "/nfs2".to_string(),
|
||||
quality_profile_id: 1,
|
||||
metadata_profile_id: 1,
|
||||
quality_profile_id: 2222,
|
||||
metadata_profile_id: 4444,
|
||||
tags: Vec::default(),
|
||||
tag_input_string: Some("usenet, testing".to_owned()),
|
||||
add_options: AddArtistOptions {
|
||||
monitor: Default::default(),
|
||||
monitor_new_items: Default::default(),
|
||||
monitor: MonitorType::Future,
|
||||
monitor_new_items: NewItemMonitorType::None,
|
||||
search_for_missing_albums: true,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -660,6 +660,54 @@ mod tests {
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_search_tracks_key() {
|
||||
let mut app = App::test_default_fully_populated();
|
||||
app.push_navigation_stack(ActiveLidarrBlock::AlbumDetails.into());
|
||||
|
||||
AlbumDetailsHandler::new(
|
||||
DEFAULT_KEYBINDINGS.search.key,
|
||||
&mut app,
|
||||
ActiveLidarrBlock::AlbumDetails,
|
||||
None,
|
||||
)
|
||||
.handle();
|
||||
|
||||
assert_navigation_pushed!(app, ActiveLidarrBlock::SearchTracks.into());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_search_album_history_key() {
|
||||
let mut app = App::test_default_fully_populated();
|
||||
app.push_navigation_stack(ActiveLidarrBlock::AlbumHistory.into());
|
||||
|
||||
AlbumDetailsHandler::new(
|
||||
DEFAULT_KEYBINDINGS.search.key,
|
||||
&mut app,
|
||||
ActiveLidarrBlock::AlbumHistory,
|
||||
None,
|
||||
)
|
||||
.handle();
|
||||
|
||||
assert_navigation_pushed!(app, ActiveLidarrBlock::SearchAlbumHistory.into());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_filter_album_history_key() {
|
||||
let mut app = App::test_default_fully_populated();
|
||||
app.push_navigation_stack(ActiveLidarrBlock::AlbumHistory.into());
|
||||
|
||||
AlbumDetailsHandler::new(
|
||||
DEFAULT_KEYBINDINGS.filter.key,
|
||||
&mut app,
|
||||
ActiveLidarrBlock::AlbumHistory,
|
||||
None,
|
||||
)
|
||||
.handle();
|
||||
|
||||
assert_navigation_pushed!(app, ActiveLidarrBlock::FilterAlbumHistory.into());
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
@@ -452,7 +452,7 @@ mod tests {
|
||||
use crate::handlers::KeyEventHandler;
|
||||
use crate::handlers::lidarr_handlers::library::artist_details_handler::ArtistDetailsHandler;
|
||||
use crate::handlers::lidarr_handlers::library::artist_overview_handler::ArtistOverviewHandler;
|
||||
use crate::models::lidarr_models::Artist;
|
||||
use crate::models::lidarr_models::{Album, Artist, LidarrHistoryItem};
|
||||
use crate::models::servarr_data::lidarr::lidarr_data::{
|
||||
ActiveLidarrBlock, EDIT_ARTIST_SELECTION_BLOCKS,
|
||||
};
|
||||
@@ -966,6 +966,69 @@ mod tests {
|
||||
}))
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_search_albums_key() {
|
||||
let mut app = App::test_default();
|
||||
app
|
||||
.data
|
||||
.lidarr_data
|
||||
.albums
|
||||
.set_items(vec![Album::default()]);
|
||||
app.push_navigation_stack(ActiveLidarrBlock::ArtistDetails.into());
|
||||
|
||||
ArtistDetailsHandler::new(
|
||||
DEFAULT_KEYBINDINGS.search.key,
|
||||
&mut app,
|
||||
ActiveLidarrBlock::ArtistDetails,
|
||||
None,
|
||||
)
|
||||
.handle();
|
||||
|
||||
assert_navigation_pushed!(app, ActiveLidarrBlock::SearchAlbums.into());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_search_artist_history_key() {
|
||||
let mut app = App::test_default();
|
||||
app
|
||||
.data
|
||||
.lidarr_data
|
||||
.artist_history
|
||||
.set_items(vec![LidarrHistoryItem::default()]);
|
||||
app.push_navigation_stack(ActiveLidarrBlock::ArtistHistory.into());
|
||||
|
||||
ArtistDetailsHandler::new(
|
||||
DEFAULT_KEYBINDINGS.search.key,
|
||||
&mut app,
|
||||
ActiveLidarrBlock::ArtistHistory,
|
||||
None,
|
||||
)
|
||||
.handle();
|
||||
|
||||
assert_navigation_pushed!(app, ActiveLidarrBlock::SearchArtistHistory.into());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_filter_artist_history_key() {
|
||||
let mut app = App::test_default();
|
||||
app
|
||||
.data
|
||||
.lidarr_data
|
||||
.artist_history
|
||||
.set_items(vec![LidarrHistoryItem::default()]);
|
||||
app.push_navigation_stack(ActiveLidarrBlock::ArtistHistory.into());
|
||||
|
||||
ArtistDetailsHandler::new(
|
||||
DEFAULT_KEYBINDINGS.filter.key,
|
||||
&mut app,
|
||||
ActiveLidarrBlock::ArtistHistory,
|
||||
None,
|
||||
)
|
||||
.handle();
|
||||
|
||||
assert_navigation_pushed!(app, ActiveLidarrBlock::FilterArtistHistory.into());
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
@@ -782,29 +782,41 @@ mod tests {
|
||||
edit_artist
|
||||
.quality_profile_list
|
||||
.set_items(vec!["Lossless".to_owned(), "HD - 1080p".to_owned()]);
|
||||
edit_artist.quality_profile_list.state.select(Some(1));
|
||||
edit_artist
|
||||
.metadata_profile_list
|
||||
.set_items(vec!["Standard".to_owned(), "Full".to_owned()]);
|
||||
edit_artist.metadata_profile_list.state.select(Some(1));
|
||||
edit_artist
|
||||
.monitor_list
|
||||
.set_items(Vec::from_iter(NewItemMonitorType::iter()));
|
||||
edit_artist.monitor_list.state.select(Some(1));
|
||||
app.data.lidarr_data.edit_artist_modal = Some(edit_artist);
|
||||
app.data.lidarr_data.artists.set_items(vec![Artist {
|
||||
monitored: false,
|
||||
..Artist::default()
|
||||
}]);
|
||||
app.data.lidarr_data.artists.set_items(vec![
|
||||
Artist {
|
||||
id: 999,
|
||||
monitored: false,
|
||||
..Artist::default()
|
||||
},
|
||||
Artist {
|
||||
id: 2,
|
||||
monitored: false,
|
||||
..Artist::default()
|
||||
},
|
||||
]);
|
||||
app.data.lidarr_data.artists.select_index(Some(1));
|
||||
app.data.lidarr_data.quality_profile_map = BiMap::from_iter([
|
||||
(1111, "Lossless".to_owned()),
|
||||
(2222, "HD - 1080p".to_owned()),
|
||||
]);
|
||||
app.data.lidarr_data.metadata_profile_map =
|
||||
BiMap::from_iter([(1111, "Standard".to_owned()), (2222, "Full".to_owned())]);
|
||||
BiMap::from_iter([(3333, "Standard".to_owned()), (4444, "Full".to_owned())]);
|
||||
let expected_edit_artist_params = EditArtistParams {
|
||||
artist_id: 0,
|
||||
artist_id: 2,
|
||||
monitored: Some(false),
|
||||
monitor_new_items: Some(NewItemMonitorType::All),
|
||||
quality_profile_id: Some(1111),
|
||||
metadata_profile_id: Some(1111),
|
||||
monitor_new_items: Some(NewItemMonitorType::None),
|
||||
quality_profile_id: Some(2222),
|
||||
metadata_profile_id: Some(4444),
|
||||
root_folder_path: Some("/nfs/Test Path".to_owned()),
|
||||
tag_input_string: Some("usenet, testing".to_owned()),
|
||||
..EditArtistParams::default()
|
||||
@@ -1236,29 +1248,41 @@ mod tests {
|
||||
edit_artist
|
||||
.quality_profile_list
|
||||
.set_items(vec!["Lossless".to_owned(), "HD - 1080p".to_owned()]);
|
||||
edit_artist.quality_profile_list.state.select(Some(1));
|
||||
edit_artist
|
||||
.metadata_profile_list
|
||||
.set_items(vec!["Standard".to_owned(), "Full".to_owned()]);
|
||||
edit_artist.metadata_profile_list.state.select(Some(1));
|
||||
edit_artist
|
||||
.monitor_list
|
||||
.set_items(Vec::from_iter(NewItemMonitorType::iter()));
|
||||
edit_artist.monitor_list.state.select(Some(1));
|
||||
app.data.lidarr_data.edit_artist_modal = Some(edit_artist);
|
||||
app.data.lidarr_data.artists.set_items(vec![Artist {
|
||||
monitored: false,
|
||||
..Artist::default()
|
||||
}]);
|
||||
app.data.lidarr_data.artists.set_items(vec![
|
||||
Artist {
|
||||
id: 999,
|
||||
monitored: false,
|
||||
..Artist::default()
|
||||
},
|
||||
Artist {
|
||||
id: 2,
|
||||
monitored: false,
|
||||
..Artist::default()
|
||||
},
|
||||
]);
|
||||
app.data.lidarr_data.artists.select_index(Some(1));
|
||||
app.data.lidarr_data.quality_profile_map = BiMap::from_iter([
|
||||
(1111, "Lossless".to_owned()),
|
||||
(2222, "HD - 1080p".to_owned()),
|
||||
]);
|
||||
app.data.lidarr_data.metadata_profile_map =
|
||||
BiMap::from_iter([(1111, "Standard".to_owned()), (2222, "Full".to_owned())]);
|
||||
BiMap::from_iter([(3333, "Standard".to_owned()), (4444, "Full".to_owned())]);
|
||||
let expected_edit_artist_params = EditArtistParams {
|
||||
artist_id: 0,
|
||||
artist_id: 2,
|
||||
monitored: Some(false),
|
||||
monitor_new_items: Some(NewItemMonitorType::All),
|
||||
quality_profile_id: Some(1111),
|
||||
metadata_profile_id: Some(1111),
|
||||
monitor_new_items: Some(NewItemMonitorType::None),
|
||||
quality_profile_id: Some(2222),
|
||||
metadata_profile_id: Some(4444),
|
||||
root_folder_path: Some("/nfs/Test Path".to_owned()),
|
||||
tag_input_string: Some("usenet, testing".to_owned()),
|
||||
..EditArtistParams::default()
|
||||
@@ -1332,29 +1356,41 @@ mod tests {
|
||||
edit_artist
|
||||
.quality_profile_list
|
||||
.set_items(vec!["Lossless".to_owned(), "HD - 1080p".to_owned()]);
|
||||
edit_artist.quality_profile_list.state.select(Some(1));
|
||||
edit_artist
|
||||
.metadata_profile_list
|
||||
.set_items(vec!["Standard".to_owned(), "Full".to_owned()]);
|
||||
edit_artist.metadata_profile_list.state.select(Some(1));
|
||||
edit_artist
|
||||
.monitor_list
|
||||
.set_items(Vec::from_iter(NewItemMonitorType::iter()));
|
||||
edit_artist.monitor_list.state.select(Some(1));
|
||||
app.data.lidarr_data.edit_artist_modal = Some(edit_artist);
|
||||
app.data.lidarr_data.artists.set_items(vec![Artist {
|
||||
monitored: false,
|
||||
..Artist::default()
|
||||
}]);
|
||||
app.data.lidarr_data.artists.set_items(vec![
|
||||
Artist {
|
||||
id: 999,
|
||||
monitored: false,
|
||||
..Artist::default()
|
||||
},
|
||||
Artist {
|
||||
id: 2,
|
||||
monitored: false,
|
||||
..Artist::default()
|
||||
},
|
||||
]);
|
||||
app.data.lidarr_data.artists.select_index(Some(1));
|
||||
app.data.lidarr_data.quality_profile_map = BiMap::from_iter([
|
||||
(1111, "Lossless".to_owned()),
|
||||
(2222, "HD - 1080p".to_owned()),
|
||||
]);
|
||||
app.data.lidarr_data.metadata_profile_map =
|
||||
BiMap::from_iter([(1111, "Standard".to_owned()), (2222, "Full".to_owned())]);
|
||||
BiMap::from_iter([(3333, "Standard".to_owned()), (4444, "Full".to_owned())]);
|
||||
let expected_edit_artist_params = EditArtistParams {
|
||||
artist_id: 0,
|
||||
artist_id: 2,
|
||||
monitored: Some(false),
|
||||
monitor_new_items: Some(NewItemMonitorType::All),
|
||||
quality_profile_id: Some(1111),
|
||||
metadata_profile_id: Some(1111),
|
||||
monitor_new_items: Some(NewItemMonitorType::None),
|
||||
quality_profile_id: Some(2222),
|
||||
metadata_profile_id: Some(4444),
|
||||
root_folder_path: Some("/nfs/Test Path".to_owned()),
|
||||
tag_input_string: Some("usenet, testing".to_owned()),
|
||||
..EditArtistParams::default()
|
||||
|
||||
@@ -244,11 +244,8 @@ mod tests {
|
||||
#[test]
|
||||
fn test_toggle_monitoring_key() {
|
||||
let mut app = App::test_default();
|
||||
app
|
||||
.data
|
||||
.lidarr_data
|
||||
.artists
|
||||
.set_items(vec![Artist::default()]);
|
||||
app.data.lidarr_data.artists.set_items(artists_vec());
|
||||
app.data.lidarr_data.artists.select_index(Some(1));
|
||||
app.push_navigation_stack(ActiveLidarrBlock::Artists.into());
|
||||
app.is_routing = false;
|
||||
|
||||
@@ -265,7 +262,7 @@ mod tests {
|
||||
assert!(app.is_routing);
|
||||
assert_some_eq_x!(
|
||||
&app.data.lidarr_data.prompt_confirm_action,
|
||||
&LidarrEvent::ToggleArtistMonitoring(0)
|
||||
&LidarrEvent::ToggleArtistMonitoring(2)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -770,4 +767,38 @@ mod tests {
|
||||
assert_eq!(app.get_current_route(), ActiveLidarrBlock::Artists.into());
|
||||
assert!(app.should_refresh);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_search_artists_key() {
|
||||
let mut app = App::test_default();
|
||||
app.data.lidarr_data.artists.set_items(artists_vec());
|
||||
app.push_navigation_stack(ActiveLidarrBlock::Artists.into());
|
||||
|
||||
LibraryHandler::new(
|
||||
DEFAULT_KEYBINDINGS.search.key,
|
||||
&mut app,
|
||||
ActiveLidarrBlock::Artists,
|
||||
None,
|
||||
)
|
||||
.handle();
|
||||
|
||||
assert_navigation_pushed!(app, ActiveLidarrBlock::SearchArtists.into());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_filter_artists_key() {
|
||||
let mut app = App::test_default();
|
||||
app.data.lidarr_data.artists.set_items(artists_vec());
|
||||
app.push_navigation_stack(ActiveLidarrBlock::Artists.into());
|
||||
|
||||
LibraryHandler::new(
|
||||
DEFAULT_KEYBINDINGS.filter.key,
|
||||
&mut app,
|
||||
ActiveLidarrBlock::Artists,
|
||||
None,
|
||||
)
|
||||
.handle();
|
||||
|
||||
assert_navigation_pushed!(app, ActiveLidarrBlock::FilterArtists.into());
|
||||
}
|
||||
}
|
||||
@@ -244,6 +244,38 @@ mod tests {
|
||||
assert_eq!(app.get_current_route(), active_lidarr_block.into());
|
||||
assert!(!app.is_routing);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_search_track_history_key() {
|
||||
let mut app = App::test_default_fully_populated();
|
||||
app.push_navigation_stack(ActiveLidarrBlock::TrackHistory.into());
|
||||
|
||||
TrackDetailsHandler::new(
|
||||
DEFAULT_KEYBINDINGS.search.key,
|
||||
&mut app,
|
||||
ActiveLidarrBlock::TrackHistory,
|
||||
None,
|
||||
)
|
||||
.handle();
|
||||
|
||||
assert_navigation_pushed!(app, ActiveLidarrBlock::SearchTrackHistory.into());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_filter_track_history_key() {
|
||||
let mut app = App::test_default_fully_populated();
|
||||
app.push_navigation_stack(ActiveLidarrBlock::TrackHistory.into());
|
||||
|
||||
TrackDetailsHandler::new(
|
||||
DEFAULT_KEYBINDINGS.filter.key,
|
||||
&mut app,
|
||||
ActiveLidarrBlock::TrackHistory,
|
||||
None,
|
||||
)
|
||||
.handle();
|
||||
|
||||
assert_navigation_pushed!(app, ActiveLidarrBlock::FilterTrackHistory.into());
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
@@ -1052,27 +1052,31 @@ mod tests {
|
||||
add_root_folder
|
||||
.quality_profile_list
|
||||
.set_items(vec!["Lossless".to_owned(), "FLAC".to_owned()]);
|
||||
add_root_folder.quality_profile_list.state.select(Some(1));
|
||||
add_root_folder
|
||||
.metadata_profile_list
|
||||
.set_items(vec!["Standard".to_owned(), "Full".to_owned()]);
|
||||
add_root_folder.metadata_profile_list.state.select(Some(1));
|
||||
add_root_folder
|
||||
.monitor_list
|
||||
.set_items(Vec::from_iter(MonitorType::iter()));
|
||||
add_root_folder.monitor_list.state.select(Some(1));
|
||||
add_root_folder
|
||||
.monitor_new_items_list
|
||||
.set_items(Vec::from_iter(NewItemMonitorType::iter()));
|
||||
add_root_folder.monitor_new_items_list.state.select(Some(1));
|
||||
app.data.lidarr_data.add_root_folder_modal = Some(add_root_folder);
|
||||
app.data.lidarr_data.quality_profile_map =
|
||||
BiMap::from_iter([(1111, "Lossless".to_owned()), (2222, "FLAC".to_owned())]);
|
||||
app.data.lidarr_data.metadata_profile_map =
|
||||
BiMap::from_iter([(1111, "Standard".to_owned()), (2222, "Full".to_owned())]);
|
||||
BiMap::from_iter([(3333, "Standard".to_owned()), (4444, "Full".to_owned())]);
|
||||
let expected_add_root_folder_body = AddLidarrRootFolderBody {
|
||||
name: "Test Name".to_owned(),
|
||||
path: "/nfs/Test Path".to_owned(),
|
||||
default_quality_profile_id: 1111,
|
||||
default_metadata_profile_id: 1111,
|
||||
default_monitor_option: MonitorType::All,
|
||||
default_new_item_monitor_option: NewItemMonitorType::All,
|
||||
default_quality_profile_id: 2222,
|
||||
default_metadata_profile_id: 4444,
|
||||
default_monitor_option: MonitorType::Future,
|
||||
default_new_item_monitor_option: NewItemMonitorType::None,
|
||||
default_tags: Vec::new(),
|
||||
tag_input_string: Some("usenet, testing".to_owned()),
|
||||
};
|
||||
@@ -1525,27 +1529,31 @@ mod tests {
|
||||
add_root_folder
|
||||
.quality_profile_list
|
||||
.set_items(vec!["Lossless".to_owned(), "FLAC".to_owned()]);
|
||||
add_root_folder.quality_profile_list.state.select(Some(1));
|
||||
add_root_folder
|
||||
.metadata_profile_list
|
||||
.set_items(vec!["Standard".to_owned(), "Full".to_owned()]);
|
||||
add_root_folder.metadata_profile_list.state.select(Some(1));
|
||||
add_root_folder
|
||||
.monitor_list
|
||||
.set_items(Vec::from_iter(MonitorType::iter()));
|
||||
add_root_folder.monitor_list.state.select(Some(1));
|
||||
add_root_folder
|
||||
.monitor_new_items_list
|
||||
.set_items(Vec::from_iter(NewItemMonitorType::iter()));
|
||||
add_root_folder.monitor_new_items_list.state.select(Some(1));
|
||||
app.data.lidarr_data.add_root_folder_modal = Some(add_root_folder);
|
||||
app.data.lidarr_data.quality_profile_map =
|
||||
BiMap::from_iter([(1111, "Lossless".to_owned()), (2222, "FLAC".to_owned())]);
|
||||
app.data.lidarr_data.metadata_profile_map =
|
||||
BiMap::from_iter([(1111, "Standard".to_owned()), (2222, "Full".to_owned())]);
|
||||
BiMap::from_iter([(3333, "Standard".to_owned()), (4444, "Full".to_owned())]);
|
||||
let expected_add_root_folder_body = AddLidarrRootFolderBody {
|
||||
name: "Test Name".to_owned(),
|
||||
path: "/nfs/Test Path".to_owned(),
|
||||
default_quality_profile_id: 1111,
|
||||
default_metadata_profile_id: 1111,
|
||||
default_monitor_option: MonitorType::All,
|
||||
default_new_item_monitor_option: NewItemMonitorType::All,
|
||||
default_quality_profile_id: 2222,
|
||||
default_metadata_profile_id: 4444,
|
||||
default_monitor_option: MonitorType::Future,
|
||||
default_new_item_monitor_option: NewItemMonitorType::None,
|
||||
default_tags: Vec::new(),
|
||||
tag_input_string: Some("usenet, testing".to_owned()),
|
||||
};
|
||||
@@ -1619,27 +1627,31 @@ mod tests {
|
||||
add_root_folder
|
||||
.quality_profile_list
|
||||
.set_items(vec!["Lossless".to_owned(), "FLAC".to_owned()]);
|
||||
add_root_folder.quality_profile_list.state.select(Some(1));
|
||||
add_root_folder
|
||||
.metadata_profile_list
|
||||
.set_items(vec!["Standard".to_owned(), "Full".to_owned()]);
|
||||
add_root_folder.metadata_profile_list.state.select(Some(1));
|
||||
add_root_folder
|
||||
.monitor_list
|
||||
.set_items(Vec::from_iter(MonitorType::iter()));
|
||||
add_root_folder.monitor_list.state.select(Some(1));
|
||||
add_root_folder
|
||||
.monitor_new_items_list
|
||||
.set_items(Vec::from_iter(NewItemMonitorType::iter()));
|
||||
add_root_folder.monitor_new_items_list.state.select(Some(1));
|
||||
app.data.lidarr_data.add_root_folder_modal = Some(add_root_folder);
|
||||
app.data.lidarr_data.quality_profile_map =
|
||||
BiMap::from_iter([(1111, "Lossless".to_owned()), (2222, "FLAC".to_owned())]);
|
||||
app.data.lidarr_data.metadata_profile_map =
|
||||
BiMap::from_iter([(1111, "Standard".to_owned()), (2222, "Full".to_owned())]);
|
||||
BiMap::from_iter([(3333, "Standard".to_owned()), (4444, "Full".to_owned())]);
|
||||
let expected_add_root_folder_body = AddLidarrRootFolderBody {
|
||||
name: "Test Name".to_owned(),
|
||||
path: "/nfs/Test Path".to_owned(),
|
||||
default_quality_profile_id: 1111,
|
||||
default_metadata_profile_id: 1111,
|
||||
default_monitor_option: MonitorType::All,
|
||||
default_new_item_monitor_option: NewItemMonitorType::All,
|
||||
default_quality_profile_id: 2222,
|
||||
default_metadata_profile_id: 4444,
|
||||
default_monitor_option: MonitorType::Future,
|
||||
default_new_item_monitor_option: NewItemMonitorType::None,
|
||||
default_tags: Vec::new(),
|
||||
tag_input_string: Some("usenet, testing".to_owned()),
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user