fix: Improved fault tolerance for search result tables and test all indexer results tables

This commit is contained in:
2026-01-07 14:58:32 -07:00
parent 64d8c65831
commit d3947d9e15
8 changed files with 145 additions and 16 deletions
+8 -2
View File
@@ -368,7 +368,7 @@ impl Network<'_, '_> {
.await;
request_props.ignore_status_code = true;
self
let result = self
.handle_request::<(), Vec<IndexerTestResult>>(request_props, |test_results, mut app| {
let mut test_all_indexer_results = StatefulTable::default();
let indexers = app.data.radarr_data.indexers.items.clone();
@@ -403,6 +403,12 @@ impl Network<'_, '_> {
test_all_indexer_results.set_items(modal_test_results);
app.data.radarr_data.indexer_test_all_results = Some(test_all_indexer_results);
})
.await
.await;
if result.is_err() {
self.app.lock().await.data.radarr_data.indexer_test_all_results = Some(StatefulTable::default());
}
result
}
}
@@ -925,4 +925,29 @@ mod tests {
);
assert_eq!(results, response);
}
#[tokio::test]
async fn test_handle_test_all_radarr_indexers_event_sets_empty_table_on_api_error() {
let (async_server, app, _server) = MockServarrApi::post()
.status(500)
.build_for(RadarrEvent::TestAllIndexers)
.await;
let mut network = test_network(&app);
let result = network
.handle_radarr_event(RadarrEvent::TestAllIndexers)
.await;
async_server.assert_async().await;
assert_err!(result);
assert_some!(
&app
.lock()
.await
.data
.radarr_data
.indexer_test_all_results
);
assert_is_empty!(app.lock().await.data.radarr_data.indexer_test_all_results.as_ref().unwrap());
}
}