fix: AddRootFolderBody now constructed prior to AddRootFolder event being sent down the network channel
This commit is contained in:
@@ -5,7 +5,7 @@ use crate::handlers::radarr_handlers::handle_change_tab_left_right_keys;
|
||||
use crate::handlers::table_handler::TableHandlingConfig;
|
||||
use crate::handlers::{handle_clear_errors, handle_prompt_toggle, KeyEventHandler};
|
||||
use crate::models::servarr_data::radarr::radarr_data::{ActiveRadarrBlock, ROOT_FOLDERS_BLOCKS};
|
||||
use crate::models::servarr_models::RootFolder;
|
||||
use crate::models::servarr_models::{AddRootFolderBody, RootFolder};
|
||||
use crate::models::HorizontallyScrollableText;
|
||||
use crate::network::radarr_network::RadarrEvent;
|
||||
use crate::{handle_table_events, handle_text_box_keys, handle_text_box_left_right_keys};
|
||||
@@ -28,6 +28,21 @@ impl<'a, 'b> RootFoldersHandler<'a, 'b> {
|
||||
self.app.data.radarr_data.root_folders,
|
||||
RootFolder
|
||||
);
|
||||
|
||||
fn build_add_root_folder_body(&mut self) -> AddRootFolderBody {
|
||||
let path = self.app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_root_folder
|
||||
.as_ref()
|
||||
.unwrap()
|
||||
.text
|
||||
.clone();
|
||||
|
||||
self.app.data.radarr_data.edit_root_folder = None;
|
||||
|
||||
AddRootFolderBody { path }
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for RootFoldersHandler<'a, 'b> {
|
||||
@@ -140,7 +155,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for RootFoldersHandler<'
|
||||
.text
|
||||
.is_empty() =>
|
||||
{
|
||||
self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::AddRootFolder(None));
|
||||
self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::AddRootFolder(self.build_add_root_folder_body()));
|
||||
self.app.data.radarr_data.prompt_confirm = true;
|
||||
self.app.should_ignore_quit_key = false;
|
||||
self.app.pop_navigation_stack();
|
||||
|
||||
@@ -8,7 +8,7 @@ mod tests {
|
||||
use crate::handlers::radarr_handlers::root_folders::RootFoldersHandler;
|
||||
use crate::handlers::KeyEventHandler;
|
||||
use crate::models::servarr_data::radarr::radarr_data::{ActiveRadarrBlock, ROOT_FOLDERS_BLOCKS};
|
||||
use crate::models::servarr_models::RootFolder;
|
||||
use crate::models::servarr_models::{AddRootFolderBody, RootFolder};
|
||||
use crate::models::HorizontallyScrollableText;
|
||||
|
||||
mod test_handle_home_end {
|
||||
@@ -250,6 +250,7 @@ mod tests {
|
||||
#[test]
|
||||
fn test_add_root_folder_prompt_confirm_submit() {
|
||||
let mut app = App::default();
|
||||
let expected_add_root_folder_body = AddRootFolderBody { path: "Test".to_owned() };
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
@@ -273,7 +274,7 @@ mod tests {
|
||||
assert!(!app.should_ignore_quit_key);
|
||||
assert_eq!(
|
||||
app.data.radarr_data.prompt_confirm_action,
|
||||
Some(RadarrEvent::AddRootFolder(None))
|
||||
Some(RadarrEvent::AddRootFolder(expected_add_root_folder_body))
|
||||
);
|
||||
assert_eq!(
|
||||
app.get_current_route(),
|
||||
@@ -638,6 +639,27 @@ mod tests {
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_build_add_root_folder_body() {
|
||||
let mut app = App::default();
|
||||
app.data.radarr_data.edit_root_folder = Some("/nfs/test".into());
|
||||
let expected_add_root_folder_body = AddRootFolderBody { path: "/nfs/test".to_owned() };
|
||||
|
||||
let actual_add_root_folder_body = RootFoldersHandler::with(
|
||||
DEFAULT_KEYBINDINGS.esc.key,
|
||||
&mut app,
|
||||
ActiveRadarrBlock::RootFolders,
|
||||
None,
|
||||
).build_add_root_folder_body();
|
||||
|
||||
assert_eq!(actual_add_root_folder_body, expected_add_root_folder_body);
|
||||
assert!(app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_root_folder
|
||||
.is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_root_folders_handler_not_ready_when_loading() {
|
||||
|
||||
Reference in New Issue
Block a user