test: Added in unit tests for TUI support for multiple custom named Servarrs

This commit is contained in:
2025-02-27 19:30:17 -07:00
parent 9b63b10118
commit f87e02cd7c
76 changed files with 1635 additions and 1403 deletions
+43 -56
View File
@@ -34,7 +34,7 @@ mod tests {
.parse()
.unwrap(),
);
let mut app = App::default();
let mut app = App::test_default();
app.is_loading = true;
let radarr_config = ServarrConfig {
host,
@@ -43,7 +43,7 @@ mod tests {
ssl_cert_path: None,
..ServarrConfig::default()
};
app.config.radarr = Some(radarr_config);
app.server_tabs.tabs[0].config = Some(radarr_config);
let app_arc = Arc::new(Mutex::new(app));
let mut network = Network::new(&app_arc, CancellationToken::new(), Client::new());
@@ -68,7 +68,7 @@ mod tests {
.with_status(200)
.create_async()
.await;
let app_arc = Arc::new(Mutex::new(App::default()));
let app_arc = Arc::new(Mutex::new(App::test_default()));
let mut network = Network::new(&app_arc, CancellationToken::new(), Client::new());
let _ = network
@@ -218,7 +218,7 @@ mod tests {
.with_body(r#"{ "invalid": "INVALID" }"#)
.create_async()
.await;
let app_arc = Arc::new(Mutex::new(App::default()));
let app_arc = Arc::new(Mutex::new(App::test_default()));
let mut network = Network::new(&app_arc, CancellationToken::new(), Client::new());
let resp = network
@@ -250,7 +250,7 @@ mod tests {
#[tokio::test]
async fn test_handle_request_failure_to_send_request() {
let app_arc = Arc::new(Mutex::new(App::default()));
let app_arc = Arc::new(Mutex::new(App::test_default()));
let mut network = Network::new(&app_arc, CancellationToken::new(), Client::new());
let resp = network
@@ -368,8 +368,8 @@ mod tests {
if request_method == RequestMethod::Post {
async_server = async_server.with_body(
r#"{
"value": "Test"
r#"{
"value": "Test"
}"#,
);
body = Some(Test {
@@ -378,7 +378,7 @@ mod tests {
}
async_server = async_server.create_async().await;
let app_arc = Arc::new(Mutex::new(App::default()));
let app_arc = Arc::new(Mutex::new(App::test_default()));
let network = Network::new(&app_arc, CancellationToken::new(), Client::new());
network
@@ -398,31 +398,16 @@ mod tests {
}
#[tokio::test]
#[should_panic(expected = "Radarr config undefined")]
async fn test_request_props_from_requires_radarr_config_to_be_present_for_radarr_events() {
#[should_panic(expected = "Servarr config is undefined")]
#[rstest]
async fn test_request_props_from_requires_radarr_config_to_be_present_for_all_network_events(
#[values(RadarrEvent::HealthCheck, SonarrEvent::HealthCheck)] network_event: impl Into<NetworkEvent> + NetworkResource) {
let app_arc = Arc::new(Mutex::new(App::default()));
let network = Network::new(&app_arc, CancellationToken::new(), Client::new());
network
.request_props_from(
RadarrEvent::GetMovies,
RequestMethod::Get,
None::<()>,
None,
None,
)
.await;
}
#[tokio::test]
#[should_panic(expected = "Sonarr config undefined")]
async fn test_request_props_from_requires_sonarr_config_to_be_present_for_sonarr_events() {
let app_arc = Arc::new(Mutex::new(App::default()));
let network = Network::new(&app_arc, CancellationToken::new(), Client::new());
network
.request_props_from(
SonarrEvent::ListSeries,
network_event,
RequestMethod::Get,
None::<()>,
None,
@@ -439,13 +424,14 @@ mod tests {
#[case] network_event: impl Into<NetworkEvent> + NetworkResource,
#[case] default_port: u16,
) {
let app_arc = Arc::new(Mutex::new(App::default()));
let app_arc = Arc::new(Mutex::new(App::test_default()));
let network = Network::new(&app_arc, CancellationToken::new(), Client::new());
let resource = network_event.resource();
app_arc.lock().await.config = AppConfig {
radarr: Some(ServarrConfig::default()),
sonarr: Some(ServarrConfig::default()),
};
{
let mut app = app_arc.lock().await;
app.server_tabs.tabs[0].config = Some(ServarrConfig::default());
app.server_tabs.tabs[1].config = Some(ServarrConfig::default());
}
let request_props = network
.request_props_from(network_event, RequestMethod::Get, None::<()>, None, None)
@@ -467,7 +453,7 @@ mod tests {
+ NetworkResource,
) {
let api_token = "testToken1234".to_owned();
let app_arc = Arc::new(Mutex::new(App::default()));
let app_arc = Arc::new(Mutex::new(App::test_default()));
let resource = network_event.resource();
let servarr_config = ServarrConfig {
host: Some("192.168.0.123".to_owned()),
@@ -478,8 +464,8 @@ mod tests {
};
{
let mut app = app_arc.lock().await;
app.config.radarr = Some(servarr_config.clone());
app.config.sonarr = Some(servarr_config);
app.server_tabs.tabs[0].config = Some(servarr_config.clone());
app.server_tabs.tabs[1].config = Some(servarr_config);
}
let network = Network::new(&app_arc, CancellationToken::new(), Client::new());
@@ -503,7 +489,7 @@ mod tests {
+ NetworkResource,
) {
let api_token = "testToken1234".to_owned();
let app_arc = Arc::new(Mutex::new(App::default()));
let app_arc = Arc::new(Mutex::new(App::test_default()));
let resource = network_event.resource();
let servarr_config = ServarrConfig {
uri: Some("https://192.168.0.123:8080".to_owned()),
@@ -512,8 +498,8 @@ mod tests {
};
{
let mut app = app_arc.lock().await;
app.config.radarr = Some(servarr_config.clone());
app.config.sonarr = Some(servarr_config);
app.server_tabs.tabs[0].config = Some(servarr_config.clone());
app.server_tabs.tabs[1].config = Some(servarr_config);
}
let network = Network::new(&app_arc, CancellationToken::new(), Client::new());
@@ -538,13 +524,14 @@ mod tests {
#[case] network_event: impl Into<NetworkEvent> + NetworkResource,
#[case] default_port: u16,
) {
let app_arc = Arc::new(Mutex::new(App::default()));
let app_arc = Arc::new(Mutex::new(App::test_default()));
let network = Network::new(&app_arc, CancellationToken::new(), Client::new());
let resource = network_event.resource();
app_arc.lock().await.config = AppConfig {
radarr: Some(ServarrConfig::default()),
sonarr: Some(ServarrConfig::default()),
};
{
let mut app = app_arc.lock().await;
app.server_tabs.tabs[0].config = Some(ServarrConfig::default());
app.server_tabs.tabs[1].config = Some(ServarrConfig::default());
}
let request_props = network
.request_props_from(
@@ -572,7 +559,7 @@ mod tests {
+ NetworkResource,
) {
let api_token = "testToken1234".to_owned();
let app_arc = Arc::new(Mutex::new(App::default()));
let app_arc = Arc::new(Mutex::new(App::test_default()));
let resource = network_event.resource();
let servarr_config = ServarrConfig {
host: Some("192.168.0.123".to_owned()),
@@ -583,8 +570,8 @@ mod tests {
};
{
let mut app = app_arc.lock().await;
app.config.radarr = Some(servarr_config.clone());
app.config.sonarr = Some(servarr_config);
app.server_tabs.tabs[0].config = Some(servarr_config.clone());
app.server_tabs.tabs[1].config = Some(servarr_config);
}
let network = Network::new(&app_arc, CancellationToken::new(), Client::new());
@@ -614,7 +601,7 @@ mod tests {
+ NetworkResource,
) {
let api_token = "testToken1234".to_owned();
let app_arc = Arc::new(Mutex::new(App::default()));
let app_arc = Arc::new(Mutex::new(App::test_default()));
let resource = network_event.resource();
let servarr_config = ServarrConfig {
uri: Some("https://192.168.0.123:8080".to_owned()),
@@ -623,8 +610,8 @@ mod tests {
};
{
let mut app = app_arc.lock().await;
app.config.radarr = Some(servarr_config.clone());
app.config.sonarr = Some(servarr_config);
app.server_tabs.tabs[0].config = Some(servarr_config.clone());
app.server_tabs.tabs[1].config = Some(servarr_config);
}
let network = Network::new(&app_arc, CancellationToken::new(), Client::new());
@@ -665,14 +652,14 @@ mod tests {
if has_response_body {
async_server = async_server.with_body(
r#"{
"value": "Test"
r#"{
"value": "Test"
}"#,
);
}
async_server = async_server.create_async().await;
let app_arc = Arc::new(Mutex::new(App::default()));
let app_arc = Arc::new(Mutex::new(App::test_default()));
(async_server, app_arc, server)
}
@@ -734,7 +721,7 @@ pub(in crate::network) mod test_utils {
.parse()
.unwrap(),
);
let mut app = App::default();
let mut app = App::test_default();
let servarr_config = ServarrConfig {
host,
port,
@@ -743,8 +730,8 @@ pub(in crate::network) mod test_utils {
};
match network_event.into() {
NetworkEvent::Radarr(_) => app.config.radarr = Some(servarr_config),
NetworkEvent::Sonarr(_) => app.config.sonarr = Some(servarr_config),
NetworkEvent::Radarr(_) => app.server_tabs.tabs[0].config = Some(servarr_config),
NetworkEvent::Sonarr(_) => app.server_tabs.tabs[1].config = Some(servarr_config),
}
let app_arc = Arc::new(Mutex::new(app));