feat(network): Support for starting a Sonarr task

This commit is contained in:
2024-11-22 16:57:09 -07:00
parent 8df74585bc
commit 33db3efacf
6 changed files with 125 additions and 22 deletions
+67 -1
View File
@@ -159,7 +159,9 @@ mod test {
}
#[rstest]
fn test_resource_command(#[values(SonarrEvent::GetQueuedEvents)] event: SonarrEvent) {
fn test_resource_command(
#[values(SonarrEvent::GetQueuedEvents, SonarrEvent::StartTask(None))] event: SonarrEvent,
) {
assert_str_eq!(event.resource(), "/command");
}
@@ -3861,6 +3863,70 @@ mod test {
async_server.assert_async().await;
}
#[tokio::test]
async fn test_handle_start_sonarr_task_event() {
let response = json!({ "test": "test"});
let (async_server, app_arc, _server) = mock_servarr_api(
RequestMethod::Post,
Some(json!({
"name": "ApplicationUpdateCheck"
})),
Some(response.clone()),
None,
SonarrEvent::StartTask(None),
None,
None,
)
.await;
app_arc
.lock()
.await
.data
.sonarr_data
.tasks
.set_items(vec![SonarrTask {
task_name: SonarrTaskName::default(),
..SonarrTask::default()
}]);
let mut network = Network::new(&app_arc, CancellationToken::new(), Client::new());
if let SonarrSerdeable::Value(value) = network
.handle_sonarr_event(SonarrEvent::StartTask(None))
.await
.unwrap()
{
async_server.assert_async().await;
assert_eq!(value, response);
}
}
#[tokio::test]
async fn test_handle_start_sonarr_task_event_uses_provided_task_name() {
let response = json!({ "test": "test"});
let (async_server, app_arc, _server) = mock_servarr_api(
RequestMethod::Post,
Some(json!({
"name": "ApplicationUpdateCheck"
})),
Some(response.clone()),
None,
SonarrEvent::StartTask(None),
None,
None,
)
.await;
let mut network = Network::new(&app_arc, CancellationToken::new(), Client::new());
if let SonarrSerdeable::Value(value) = network
.handle_sonarr_event(SonarrEvent::StartTask(Some(SonarrTaskName::default())))
.await
.unwrap()
{
async_server.assert_async().await;
assert_eq!(value, response);
}
}
#[tokio::test]
async fn test_extract_series_id() {
let app_arc = Arc::new(Mutex::new(App::default()));