From 040935178a5dc512a704c92fcb12602945afc2bb Mon Sep 17 00:00:00 2001 From: Alex Clarke Date: Thu, 17 Sep 2026 18:22:31 -0600 Subject: [PATCH] test(sonarr): give the download record and episode fixtures distinct ids The shared download record held id and episode id both equal to 1, and the shared episode held id and episode file id both equal to 1, so reading the wrong one of those fields could not fail any test that uses them. Move the download record to id 9 and the episode to id 11, keeping the download record's episode id equal to the episode's id so the downloading episode still matches, and move the episode file to id 7 together with the episode's episode file id so the season view still finds its quality and size. Series id, season number, and episode number stay at 1. The handler tree keeps its own copy of these fixtures; update it identically, along with the JSON twins in the network tests and the seven handler assertions that named the old ids. The two get episodes tests that asserted the sorted table now spell out the sorted order, since the fixture episode no longer sorts first by id. --- .../downloads/downloads_handler_tests.rs | 6 +++--- .../library/episode_details_handler_tests.rs | 6 +++--- .../library/season_details_handler_tests.rs | 4 ++-- .../sonarr_handlers/sonarr_handler_test_utils.rs | 10 +++++----- .../downloads/sonarr_downloads_network_tests.rs | 4 ++-- .../episodes/sonarr_episodes_network_tests.rs | 9 +++++---- .../sonarr_network/sonarr_network_test_utils.rs | 16 ++++++++-------- 7 files changed, 28 insertions(+), 27 deletions(-) diff --git a/src/handlers/sonarr_handlers/downloads/downloads_handler_tests.rs b/src/handlers/sonarr_handlers/downloads/downloads_handler_tests.rs index 876fa64e..cedd12cf 100644 --- a/src/handlers/sonarr_handlers/downloads/downloads_handler_tests.rs +++ b/src/handlers/sonarr_handlers/downloads/downloads_handler_tests.rs @@ -140,7 +140,7 @@ mod tests { #[case( ActiveSonarrBlock::Downloads, ActiveSonarrBlock::DeleteDownloadPrompt, - SonarrEvent::DeleteDownload(1) + SonarrEvent::DeleteDownload(9) )] #[case( ActiveSonarrBlock::Downloads, @@ -340,7 +340,7 @@ mod tests { #[case( ActiveSonarrBlock::Downloads, ActiveSonarrBlock::DeleteDownloadPrompt, - SonarrEvent::DeleteDownload(1) + SonarrEvent::DeleteDownload(9) )] #[case( ActiveSonarrBlock::Downloads, @@ -431,7 +431,7 @@ mod tests { ) .extract_download_id(); - assert_eq!(download_id, 1); + assert_eq!(download_id, 9); } #[test] diff --git a/src/handlers/sonarr_handlers/library/episode_details_handler_tests.rs b/src/handlers/sonarr_handlers/library/episode_details_handler_tests.rs index cd5c5920..1b57bfb8 100644 --- a/src/handlers/sonarr_handlers/library/episode_details_handler_tests.rs +++ b/src/handlers/sonarr_handlers/library/episode_details_handler_tests.rs @@ -207,7 +207,7 @@ mod tests { #[rstest] #[case( ActiveSonarrBlock::AutomaticallySearchEpisodePrompt, - SonarrEvent::TriggerAutomaticEpisodeSearch(1) + SonarrEvent::TriggerAutomaticEpisodeSearch(11) )] fn test_episode_details_prompt_confirm_submit( #[case] prompt_block: ActiveSonarrBlock, @@ -646,7 +646,7 @@ mod tests { assert_navigation_popped!(app, active_sonarr_block.into()); assert_some_eq_x!( &app.data.sonarr_data.prompt_confirm_action, - &SonarrEvent::TriggerAutomaticEpisodeSearch(1) + &SonarrEvent::TriggerAutomaticEpisodeSearch(11) ); } @@ -787,7 +787,7 @@ mod tests { ) .extract_episode_id(); - assert_eq!(episode_id, 1); + assert_eq!(episode_id, 11); } #[test] diff --git a/src/handlers/sonarr_handlers/library/season_details_handler_tests.rs b/src/handlers/sonarr_handlers/library/season_details_handler_tests.rs index 864d817e..471644ce 100644 --- a/src/handlers/sonarr_handlers/library/season_details_handler_tests.rs +++ b/src/handlers/sonarr_handlers/library/season_details_handler_tests.rs @@ -673,7 +673,7 @@ mod tests { assert!(app.is_routing); assert_some_eq_x!( &app.data.sonarr_data.prompt_confirm_action, - &SonarrEvent::ToggleEpisodeMonitoring(1) + &SonarrEvent::ToggleEpisodeMonitoring(11) ); } @@ -1129,7 +1129,7 @@ mod tests { ) .extract_episode_id(); - assert_eq!(episode_id, 1); + assert_eq!(episode_id, 11); } #[test] diff --git a/src/handlers/sonarr_handlers/sonarr_handler_test_utils.rs b/src/handlers/sonarr_handlers/sonarr_handler_test_utils.rs index 363079d8..88f1874a 100644 --- a/src/handlers/sonarr_handlers/sonarr_handler_test_utils.rs +++ b/src/handlers/sonarr_handlers/sonarr_handler_test_utils.rs @@ -191,8 +191,8 @@ pub(in crate::handlers::sonarr_handlers) mod utils { DownloadRecord { title: "Test Download Title".to_owned(), status: DownloadStatus::Downloading, - id: 1, - episode_id: Some(Number::from(1i64)), + id: 9, + episode_id: Some(Number::from(11i64)), size: 3543348019f64, sizeleft: 1771674009f64, output_path: Some(HorizontallyScrollableText::from( @@ -205,10 +205,10 @@ pub(in crate::handlers::sonarr_handlers) mod utils { pub fn episode() -> Episode { Episode { - id: 1, + id: 11, series_id: 1, tvdb_id: 1234, - episode_file_id: 1, + episode_file_id: 7, season_number: 1, episode_number: 1, title: "Something cool".to_owned(), @@ -224,7 +224,7 @@ pub(in crate::handlers::sonarr_handlers) mod utils { pub fn episode_file() -> EpisodeFile { EpisodeFile { - id: 1, + id: 7, relative_path: "/season 1/episode 1.mkv".to_owned(), path: "/nfs/tv/series/season 1/episode 1.mkv".to_owned(), size: 3543348019, diff --git a/src/network/sonarr_network/downloads/sonarr_downloads_network_tests.rs b/src/network/sonarr_network/downloads/sonarr_downloads_network_tests.rs index 3a74f396..1e0e2c0e 100644 --- a/src/network/sonarr_network/downloads/sonarr_downloads_network_tests.rs +++ b/src/network/sonarr_network/downloads/sonarr_downloads_network_tests.rs @@ -41,8 +41,8 @@ mod tests { "records": [{ "title": "Test Download Title", "status": "downloading", - "id": 1, - "episodeId": 1, + "id": 9, + "episodeId": 11, "size": 3543348019f64, "sizeleft": 1771674009f64, "outputPath": "/nfs/tv/Test show/season 1/", diff --git a/src/network/sonarr_network/library/episodes/sonarr_episodes_network_tests.rs b/src/network/sonarr_network/library/episodes/sonarr_episodes_network_tests.rs index 62b2530d..d20686ab 100644 --- a/src/network/sonarr_network/library/episodes/sonarr_episodes_network_tests.rs +++ b/src/network/sonarr_network/library/episodes/sonarr_episodes_network_tests.rs @@ -69,7 +69,7 @@ mod tests { ..episode() }; let expected_episodes = vec![episode_1.clone(), episode_2.clone(), episode_3.clone()]; - let mut expected_sorted_episodes = vec![episode_1.clone(), episode_3.clone()]; + let mut expected_sorted_episodes = vec![episode_3.clone(), episode_1.clone()]; let (mock, app, _server) = MockServarrApi::get() .query("seriesId=1") .returns(json!([episode_1, episode_2, episode_3])) @@ -175,6 +175,7 @@ mod tests { ..episode() }; let expected_episodes = vec![episode_1.clone(), episode_2.clone(), episode_3.clone()]; + let expected_sorted_episodes = vec![episode_2.clone(), episode_3.clone(), episode_1.clone()]; let (mock, app, _server) = MockServarrApi::get() .query("seriesId=1") .returns(json!([episode_1, episode_2, episode_3])) @@ -216,7 +217,7 @@ mod tests { .unwrap() .episodes .items, - expected_episodes + expected_sorted_episodes ); assert!( app @@ -294,10 +295,10 @@ mod tests { "monitored": true }, { - "id": 1, + "id": 11, "seriesId": 1, "tvdbId": 1234, - "episodeFileId": 1, + "episodeFileId": 7, "seasonNumber": 1, "episodeNumber": 1, "title": "Something cool", diff --git a/src/network/sonarr_network/sonarr_network_test_utils.rs b/src/network/sonarr_network/sonarr_network_test_utils.rs index 1838a28a..03af7a5c 100644 --- a/src/network/sonarr_network/sonarr_network_test_utils.rs +++ b/src/network/sonarr_network/sonarr_network_test_utils.rs @@ -64,14 +64,14 @@ pub mod test_utils { pub const EPISODE_JSON: &str = r#"{ "seriesId": 1, "tvdbId": 1234, - "episodeFileId": 1, + "episodeFileId": 7, "seasonNumber": 1, "episodeNumber": 1, "title": "Something cool", "airDateUtc": "2024-02-10T07:28:45Z", "overview": "Okay so this one time at band camp...", "episodeFile": { - "id": 1, + "id": 7, "relativePath": "/season 1/episode 1.mkv", "path": "/nfs/tv/series/season 1/episode 1.mkv", "size": 3543348019, @@ -96,7 +96,7 @@ pub mod test_utils { }, "hasFile": true, "monitored": true, - "id": 1 + "id": 11 }"#; pub fn add_series_search_result() -> AddSeriesSearchResult { @@ -139,8 +139,8 @@ pub mod test_utils { DownloadRecord { title: "Test Download Title".to_owned(), status: DownloadStatus::Downloading, - id: 1, - episode_id: Some(Number::from(1i64)), + id: 9, + episode_id: Some(Number::from(11i64)), size: 3543348019f64, sizeleft: 1771674009f64, output_path: Some(HorizontallyScrollableText::from( @@ -159,10 +159,10 @@ pub mod test_utils { pub fn episode() -> Episode { Episode { - id: 1, + id: 11, series_id: 1, tvdb_id: 1234, - episode_file_id: 1, + episode_file_id: 7, season_number: 1, episode_number: 1, title: "Something cool".to_owned(), @@ -178,7 +178,7 @@ pub mod test_utils { pub fn episode_file() -> EpisodeFile { EpisodeFile { - id: 1, + id: 7, relative_path: "/season 1/episode 1.mkv".to_owned(), path: "/nfs/tv/series/season 1/episode 1.mkv".to_owned(), size: 3543348019,