feat(network): Support for fetching all Sonarr root folders

This commit is contained in:
2024-11-21 16:37:23 -07:00
parent f4c647342b
commit 16538a3158
18 changed files with 138 additions and 45 deletions
+51 -1
View File
@@ -18,7 +18,7 @@ mod test {
use crate::models::servarr_data::sonarr::sonarr_data::ActiveSonarrBlock;
use crate::models::servarr_models::{
HostConfig, Indexer, IndexerField, Language, LogResponse, Quality, QualityProfile,
QualityWrapper, QueueEvent, Release, SecurityConfig,
QualityWrapper, QueueEvent, Release, RootFolder, SecurityConfig,
};
use crate::models::sonarr_models::SystemStatus;
use crate::models::sonarr_models::{
@@ -172,6 +172,11 @@ mod test {
assert_str_eq!(event.resource(), "/queue");
}
#[rstest]
fn test_resource_root_folder(#[values(SonarrEvent::GetRootFolders)] event: SonarrEvent) {
assert_str_eq!(event.resource(), "/rootfolder");
}
#[rstest]
fn test_resource_release(
#[values(
@@ -2148,6 +2153,41 @@ mod test {
}
}
#[tokio::test]
async fn test_handle_get_sonarr_root_folders_event() {
let root_folder_json = json!([{
"id": 1,
"path": "/nfs",
"accessible": true,
"freeSpace": 219902325555200u64,
}]);
let response: Vec<RootFolder> = serde_json::from_value(root_folder_json.clone()).unwrap();
let (async_server, app_arc, _server) = mock_servarr_api(
RequestMethod::Get,
None,
Some(root_folder_json),
None,
SonarrEvent::GetRootFolders,
None,
None,
)
.await;
let mut network = Network::new(&app_arc, CancellationToken::new(), Client::new());
if let SonarrSerdeable::RootFolders(root_folders) = network
.handle_sonarr_event(SonarrEvent::GetRootFolders)
.await
.unwrap()
{
async_server.assert_async().await;
assert_eq!(
app_arc.lock().await.data.sonarr_data.root_folders.items,
vec![root_folder()]
);
assert_eq!(root_folders, response);
}
}
#[tokio::test]
async fn test_handle_get_episode_releases_event() {
let release_json = json!([{
@@ -3839,4 +3879,14 @@ mod test {
quality: quality_wrapper(),
}
}
fn root_folder() -> RootFolder {
RootFolder {
id: 1,
path: "/nfs".to_owned(),
accessible: true,
free_space: 219902325555200,
unmapped_folders: None,
}
}
}