feat(ui): Downloads tab support

This commit is contained in:
2024-12-02 15:57:48 -07:00
parent f338dfcb12
commit f0d8555a8a
7 changed files with 213 additions and 27 deletions
+4
View File
@@ -1,3 +1,4 @@
use downloads::DownloadsHandler;
use library::LibraryHandler;
use crate::{
@@ -32,6 +33,9 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveSonarrBlock> for SonarrHandler<'a, 'b
_ if LibraryHandler::accepts(self.active_sonarr_block) => {
LibraryHandler::with(self.key, self.app, self.active_sonarr_block, self.context).handle();
}
_ if DownloadsHandler::accepts(self.active_sonarr_block) => {
DownloadsHandler::with(self.key, self.app, self.active_sonarr_block, self.context).handle()
}
_ => self.handle_key_event(),
}
}
@@ -48,36 +48,28 @@ mod tests {
#[rstest]
fn test_delegates_library_blocks_to_library_handler(
#[values(
// ActiveSonarrBlock::AddSeriesAlreadyInLibrary,
// ActiveSonarrBlock::AddSeriesConfirmPrompt,
// ActiveSonarrBlock::AddSeriesEmptySearchResults,
// ActiveSonarrBlock::AddSeriesPrompt,
// ActiveSonarrBlock::AddSeriesSearchInput,
// ActiveSonarrBlock::AddSeriesSearchResults,
// ActiveSonarrBlock::AddSeriesSelectLanguageProfile,
// ActiveSonarrBlock::AddSeriesSelectMonitor,
// ActiveSonarrBlock::AddSeriesSelectQualityProfile,
// ActiveSonarrBlock::AddSeriesSelectRootFolder,
// ActiveSonarrBlock::AddSeriesSelectSeriesType,
// ActiveSonarrBlock::AddSeriesTagsInput,
// ActiveSonarrBlock::AddSeriesToggleUseSeasonFolder,
ActiveSonarrBlock::AddSeriesAlreadyInLibrary,
ActiveSonarrBlock::AddSeriesEmptySearchResults,
ActiveSonarrBlock::AddSeriesPrompt,
ActiveSonarrBlock::AddSeriesSearchInput,
ActiveSonarrBlock::AddSeriesSearchResults,
ActiveSonarrBlock::AddSeriesSelectLanguageProfile,
ActiveSonarrBlock::AddSeriesSelectMonitor,
ActiveSonarrBlock::AddSeriesSelectQualityProfile,
ActiveSonarrBlock::AddSeriesSelectRootFolder,
ActiveSonarrBlock::AddSeriesSelectSeriesType,
ActiveSonarrBlock::AddSeriesTagsInput,
// ActiveSonarrBlock::AutomaticallySearchEpisodePrompt,
// ActiveSonarrBlock::AutomaticallySearchSeasonPrompt,
// ActiveSonarrBlock::AutomaticallySearchSeriesPrompt,
// ActiveSonarrBlock::DeleteEpisodeFilePrompt,
// ActiveSonarrBlock::DeleteSeriesConfirmPrompt,
// ActiveSonarrBlock::DeleteSeriesPrompt,
// ActiveSonarrBlock::DeleteSeriesToggleAddListExclusion,
// ActiveSonarrBlock::DeleteSeriesToggleDeleteFile,
// ActiveSonarrBlock::EditSeriesPrompt,
// ActiveSonarrBlock::EditSeriesConfirmPrompt,
// ActiveSonarrBlock::EditSeriesPathInput,
// ActiveSonarrBlock::EditSeriesSelectSeriesType,
// ActiveSonarrBlock::EditSeriesSelectQualityProfile,
// ActiveSonarrBlock::EditSeriesSelectLanguageProfile,
// ActiveSonarrBlock::EditSeriesTagsInput,
// ActiveSonarrBlock::EditSeriesToggleMonitored,
// ActiveSonarrBlock::EditSeriesToggleSeasonFolder,
ActiveSonarrBlock::DeleteSeriesPrompt,
ActiveSonarrBlock::EditSeriesPrompt,
ActiveSonarrBlock::EditSeriesPathInput,
ActiveSonarrBlock::EditSeriesSelectSeriesType,
ActiveSonarrBlock::EditSeriesSelectQualityProfile,
ActiveSonarrBlock::EditSeriesSelectLanguageProfile,
ActiveSonarrBlock::EditSeriesTagsInput,
// ActiveSonarrBlock::EpisodeDetails,
// ActiveSonarrBlock::EpisodeFile,
// ActiveSonarrBlock::EpisodeHistory,
@@ -119,4 +111,20 @@ mod tests {
active_sonarr_block
);
}
#[rstest]
fn test_delegates_downloads_blocks_to_downloads_handler(
#[values(
ActiveSonarrBlock::Downloads,
ActiveSonarrBlock::DeleteDownloadPrompt,
ActiveSonarrBlock::UpdateDownloadsPrompt
)]
active_sonarr_block: ActiveSonarrBlock,
) {
test_handler_delegation!(
SonarrHandler,
ActiveSonarrBlock::Downloads,
active_sonarr_block
);
}
}