test: Created snapshot tests for all Radarr UI modules

This commit is contained in:
2025-12-15 20:17:09 -07:00
parent 7084ca1be2
commit 316ed64315
273 changed files with 8859 additions and 2031 deletions
@@ -22,6 +22,8 @@ mod tests {
}
mod snapshot_tests {
use crate::ui::ui_test_utils::test_utils::TerminalSize;
use super::*;
#[test]
@@ -30,7 +32,7 @@ mod tests {
app.is_loading = true;
app.push_navigation_stack(ActiveSonarrBlock::Blocklist.into());
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
BlocklistUi::draw(f, app, f.area());
});
@@ -43,7 +45,7 @@ mod tests {
app.push_navigation_stack(ActiveSonarrBlock::Blocklist.into());
app.data.sonarr_data.blocklist = StatefulTable::default();
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
BlocklistUi::draw(f, app, f.area());
});
@@ -68,7 +70,7 @@ mod tests {
},
]);
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
BlocklistUi::draw(f, app, f.area());
});
@@ -2,4 +2,4 @@
source: src/ui/sonarr_ui/blocklist/blocklist_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
@@ -2,7 +2,7 @@
source: src/ui/sonarr_ui/blocklist/blocklist_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Loading ...
@@ -2,7 +2,7 @@
source: src/ui/sonarr_ui/blocklist/blocklist_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Series Title Source Title Language Quality Date
=> Test.Series.S01E01.1080p 1970-01-01 00:00:0
Another.Series.S02E05.720p 1970-01-01 00:00:0
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Series Title Source Title Language Quality Date
=> Test.Series.S01E01.1080p 1970-01-01 00:00:00 UTC
Another.Series.S02E05.720p 1970-01-01 00:00:00 UTC
@@ -22,6 +22,8 @@ mod tests {
}
mod snapshot_tests {
use crate::ui::ui_test_utils::test_utils::TerminalSize;
use super::*;
#[test]
@@ -30,7 +32,7 @@ mod tests {
app.is_loading = true;
app.push_navigation_stack(ActiveSonarrBlock::Downloads.into());
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
DownloadsUi::draw(f, app, f.area());
});
@@ -43,7 +45,7 @@ mod tests {
app.push_navigation_stack(ActiveSonarrBlock::Downloads.into());
app.data.sonarr_data.downloads = StatefulTable::default();
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
DownloadsUi::draw(f, app, f.area());
});
@@ -74,7 +76,7 @@ mod tests {
},
]);
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
DownloadsUi::draw(f, app, f.area());
});
@@ -2,4 +2,4 @@
source: src/ui/sonarr_ui/downloads/downloads_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
@@ -2,7 +2,7 @@
source: src/ui/sonarr_ui/downloads/downloads_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Loading ...
@@ -2,7 +2,7 @@
source: src/ui/sonarr_ui/downloads/downloads_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Title Percent Compl Size Output Path Indexer Download Client
=> Test Series Download 50% 1.00 GB
Another Series Download 100% 2.00 GB
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Title Percent Complete Size Output Path Indexer Download Client
=> Test Series Download 50% 1.00 GB
Another Series Download 100% 2.00 GB
+5 -3
View File
@@ -22,6 +22,8 @@ mod tests {
}
mod snapshot_tests {
use crate::ui::ui_test_utils::test_utils::TerminalSize;
use super::*;
#[test]
@@ -30,7 +32,7 @@ mod tests {
app.is_loading = true;
app.push_navigation_stack(ActiveSonarrBlock::History.into());
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
HistoryUi::draw(f, app, f.area());
});
@@ -43,7 +45,7 @@ mod tests {
app.push_navigation_stack(ActiveSonarrBlock::History.into());
app.data.sonarr_data.history = StatefulTable::default();
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
HistoryUi::draw(f, app, f.area());
});
@@ -68,7 +70,7 @@ mod tests {
},
]);
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
HistoryUi::draw(f, app, f.area());
});
@@ -2,4 +2,4 @@
source: src/ui/sonarr_ui/history/history_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
@@ -2,7 +2,7 @@
source: src/ui/sonarr_ui/history/history_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Loading ...
@@ -2,7 +2,7 @@
source: src/ui/sonarr_ui/history/history_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Source Title Event Type Language Quality Date
=> Test.Series.S01E01 unknown 1970-01-01 00:00:00 UTC
Another.Series.S02E05 unknown 1970-01-01 00:00:00 UTC
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Source Title Event Type Language Quality Date
=> Test.Series.S01E01 unknown 1970-01-01 00:00:00 UTC
Another.Series.S02E05 unknown 1970-01-01 00:00:00 UTC
@@ -27,6 +27,8 @@ mod tests {
}
mod snapshot_tests {
use crate::ui::ui_test_utils::test_utils::TerminalSize;
use super::*;
#[test]
@@ -59,7 +61,7 @@ mod tests {
BlockSelectionState::new(EDIT_INDEXER_TORRENT_SELECTION_BLOCKS);
app.data.sonarr_data.edit_indexer_modal = Some(EditIndexerModal::from(&app.data.sonarr_data));
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
EditIndexerUi::draw(f, app, f.area());
});
@@ -24,6 +24,8 @@ mod tests {
}
mod snapshot_tests {
use crate::ui::ui_test_utils::test_utils::TerminalSize;
use super::*;
#[test]
@@ -34,7 +36,7 @@ mod tests {
BlockSelectionState::new(INDEXER_SETTINGS_SELECTION_BLOCKS);
app.data.sonarr_data.indexer_settings = Some(IndexerSettings::default());
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
IndexerSettingsUi::draw(f, app, f.area());
});
@@ -30,6 +30,8 @@ mod tests {
}
mod snapshot_tests {
use crate::ui::ui_test_utils::test_utils::TerminalSize;
use super::*;
#[test]
@@ -38,7 +40,7 @@ mod tests {
app.is_loading = true;
app.push_navigation_stack(ActiveSonarrBlock::Indexers.into());
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
IndexersUi::draw(f, app, f.area());
});
@@ -51,7 +53,7 @@ mod tests {
app.push_navigation_stack(ActiveSonarrBlock::Indexers.into());
app.data.sonarr_data.indexers = StatefulTable::default();
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
IndexersUi::draw(f, app, f.area());
});
@@ -81,7 +83,7 @@ mod tests {
},
]);
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
IndexersUi::draw(f, app, f.area());
});
@@ -2,26 +2,41 @@
source: src/ui/sonarr_ui/indexers/edit_indexer_ui_tests.rs
expression: output
---
╭───────────────────────────────── Edit Indexer ─────────────────────────────────╮
│ │
│ ╭─────────────────╮ ╭─────────────────╮ │
│ Name: ╰─────────────────╯ URL: ╰─────────────────╯ │
│ ╭───╮ ╭─────────────────╮ │
│ ╭───╮ API Key: ╰─────────────────╯ │
│ Enable Automatic Se╰───╯ ╭─────────────────╮
╭───╮ Tags: ╰─────────────────
╭─────────────────╮ │
Indexer Priority ▴▾╰─────────────────╯ │
╭──────────────────╮╭───────────────────╮
Save ││ Cancel
╰──────────────────╯╰───────────────────
╰──────────────────────────────────────────────────────────────────────────────────╯
╭──────────────────────────────────────────────── Edit Indexer ─────────────────────────────────────────────────╮
╭─────────────────────────╭─────────────────────────
Name: │Test Indexer │ URL: │https://test.indexer.com │ │
╰─────────────────────────╯ ╰─────────────────────────╯ │
╭───╮ ╭─────────────────────────╮ │
Enable RSS: │ ✔ │ API Key: │test-api-key
╰───╯ ╰─────────────────────────╯ │
╭───╮ ╭─────────────────────────
│ Enable Automatic Search: │ │ Tags: │ │ │
│ ╰───╯ ╰─────────────────────────╯ │
│ ╭───╮ ╭─────────────────────────╮ │
│ Enable Interactive Search: │ │ Indexer Priority ▴▾: │25 │ │
│ ╰───╯ ╰─────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭───────────────────────────╮╭──────────────────────────╮ │
│ │ Save ││ Cancel │ │
│ ╰───────────────────────────╯╰──────────────────────────╯ │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -2,25 +2,39 @@
source: src/ui/sonarr_ui/indexers/indexer_settings_ui_tests.rs
expression: output
---
╭───────── Configure All Indexer Settings ─────────╮
│ ╭───────────────────────╮ │
│Minimum Age (minutes) ▴▾:│0 │ │
│ ╰───────────────────────╯ │
│ ╭───────────────────────╮ │
│ Retention (days) ▴▾: │0 │ │
───────────────────────╯
╭───────────────────────╮ │
│ Maximum Size (MB) ▴▾: │0
╰───────────────────────╯ │
╭───────────────────────╮ │
│RSS Sync Interval (minute│0 │ │
╰───────────────────────╯ │
╰────────────────────────────────────────────────────╯
╭─────────────────── Configure All Indexer Settings ───────────────────
╭────────────────────────────────╮ │
│ Minimum Age (minutes) ▴▾: │0 │ │
╰────────────────────────────────╯ │
│ ╭────────────────────────────────╮ │
│ Retention (days) ▴▾: │0 │ │
│ ╰────────────────────────────────╯ │
│ ╭────────────────────────────────╮ │
│ Maximum Size (MB) ▴▾: │0 │ │
│ ╰────────────────────────────────╯ │
│ ╭────────────────────────────────╮ │
│ RSS Sync Interval (minutes) ▴▾: │0 │ │
│ ╰────────────────────────────────╯ │
│ │
│ │
│ ╭────────────────╮╭────────────────╮ │
│ │ Save ││ Cancel │ │
│ ╰────────────────╯╰────────────────╯ │
╰────────────────────────────────────────────────────────────────────────╯
@@ -2,4 +2,4 @@
source: src/ui/sonarr_ui/indexers/indexers_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
@@ -2,7 +2,7 @@
source: src/ui/sonarr_ui/indexers/indexers_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Loading ...
@@ -2,7 +2,7 @@
source: src/ui/sonarr_ui/indexers/indexers_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Indexer RSS Automatic Search Interactive Sea Priority Tags
=> Test Indexer 1 Enabled Enabled Enabled 25
Test Indexer 2 Disabled Disabled Disabled 0
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Indexer RSS Automatic Search Interactive Search Priority Tags
=> Test Indexer 1 Enabled Enabled Enabled 25
Test Indexer 2 Disabled Disabled Disabled 0
@@ -2,29 +2,47 @@
source: src/ui/sonarr_ui/indexers/test_all_indexers_ui_tests.rs
expression: output
---
╭ Test All Indexers ───────────────────────────────────────────────────────────────────╮
│ │
│ │
│ Loading ...
╰────────────────────────────────────────────────────────────────────────────────────────╯
╭ Test All Indexers ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Loading ...
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -20,6 +20,8 @@ mod tests {
}
mod snapshot_tests {
use crate::ui::ui_test_utils::test_utils::TerminalSize;
use super::*;
#[test]
@@ -28,7 +30,7 @@ mod tests {
app.is_loading = true;
app.push_navigation_stack(ActiveSonarrBlock::TestAllIndexers.into());
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
TestAllIndexersUi::draw(f, app, f.area());
});
@@ -21,6 +21,8 @@ mod tests {
}
mod snapshot_tests {
use crate::ui::ui_test_utils::test_utils::TerminalSize;
use super::*;
#[test]
@@ -30,7 +32,7 @@ mod tests {
app.push_navigation_stack(ActiveSonarrBlock::AddSeriesSearchInput.into());
app.data.sonarr_data.add_series_search = Some(HorizontallyScrollableText::default());
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
AddSeriesUi::draw(f, app, f.area());
});
@@ -43,7 +45,7 @@ mod tests {
app.push_navigation_stack(ActiveSonarrBlock::AddSeriesSearchInput.into());
app.data.sonarr_data.add_series_search = Some(HorizontallyScrollableText::default());
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
AddSeriesUi::draw(f, app, f.area());
});
@@ -25,6 +25,8 @@ mod tests {
}
mod snapshot_tests {
use crate::ui::ui_test_utils::test_utils::TerminalSize;
use super::*;
#[test]
@@ -40,7 +42,7 @@ mod tests {
app.data.sonarr_data.selected_block =
BlockSelectionState::new(DELETE_SERIES_SELECTION_BLOCKS);
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
DeleteSeriesUi::draw(f, app, f.area());
});
@@ -27,6 +27,8 @@ mod tests {
}
mod snapshot_tests {
use crate::ui::ui_test_utils::test_utils::TerminalSize;
use super::*;
#[test]
@@ -48,7 +50,7 @@ mod tests {
app.data.sonarr_data.selected_block = BlockSelectionState::new(EDIT_SERIES_SELECTION_BLOCKS);
app.data.sonarr_data.edit_series_modal = Some(EditSeriesModal::from(&app.data.sonarr_data));
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
EditSeriesUi::draw(f, app, f.area());
});
@@ -25,6 +25,8 @@ mod tests {
}
mod snapshot_tests {
use crate::ui::ui_test_utils::test_utils::TerminalSize;
use super::*;
#[test]
@@ -41,7 +43,7 @@ mod tests {
..Series::default()
}]);
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
EpisodeDetailsUi::draw(f, app, f.area());
});
@@ -67,7 +69,7 @@ mod tests {
season_details_modal.episode_details_modal = Some(EpisodeDetailsModal::default());
app.data.sonarr_data.season_details_modal = Some(season_details_modal);
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
EpisodeDetailsUi::draw(f, app, f.area());
});
@@ -95,7 +97,7 @@ mod tests {
season_details_modal.episode_details_modal = Some(episode_details_modal);
app.data.sonarr_data.season_details_modal = Some(season_details_modal);
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
EpisodeDetailsUi::draw(f, app, f.area());
});
@@ -123,7 +125,7 @@ mod tests {
season_details_modal.episode_details_modal = Some(episode_details_modal);
app.data.sonarr_data.season_details_modal = Some(season_details_modal);
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
EpisodeDetailsUi::draw(f, app, f.area());
});
+76 -3
View File
@@ -254,7 +254,7 @@ mod tests {
use crate::models::stateful_table::StatefulTable;
use crate::ui::DrawUi;
use crate::ui::sonarr_ui::library::LibraryUi;
use crate::ui::ui_test_utils::test_utils::render_to_string_with_app;
use crate::ui::ui_test_utils::test_utils::{TerminalSize, render_to_string_with_app};
#[test]
fn test_library_ui_renders_loading_state() {
@@ -262,7 +262,7 @@ mod tests {
app.is_loading = true;
app.push_navigation_stack(ActiveSonarrBlock::Series.into());
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
LibraryUi::draw(f, app, f.area());
});
@@ -275,7 +275,80 @@ mod tests {
app.push_navigation_stack(ActiveSonarrBlock::Series.into());
app.data.sonarr_data.series = StatefulTable::default();
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
LibraryUi::draw(f, app, f.area());
});
insta::assert_snapshot!(output);
}
#[test]
fn test_library_ui_renders_with_series() {
use crate::models::sonarr_models::{Series, SeriesStatus, SeriesType};
use crate::models::stateful_table::StatefulTable;
use bimap::BiMap;
let mut app = App::test_default();
app.push_navigation_stack(ActiveSonarrBlock::Series.into());
// Set up quality profile and language profile maps
let mut quality_profile_map = BiMap::new();
quality_profile_map.insert(1, "HD-1080p".to_owned());
quality_profile_map.insert(2, "Any".to_owned());
app.data.sonarr_data.quality_profile_map = quality_profile_map;
let mut language_profiles_map = BiMap::new();
language_profiles_map.insert(1, "English".to_owned());
language_profiles_map.insert(2, "Any".to_owned());
app.data.sonarr_data.language_profiles_map = language_profiles_map;
// Create series with data
let mut series_table = StatefulTable::default();
series_table.set_items(vec![
Series {
id: 1,
title: "Breaking Bad".into(),
year: 2008,
network: Some("AMC".to_owned()),
status: SeriesStatus::Ended,
monitored: true,
series_type: SeriesType::Standard,
quality_profile_id: 1,
language_profile_id: 1,
seasons: Some(vec![]),
..Series::default()
},
Series {
id: 2,
title: "The Wire".into(),
year: 2002,
network: Some("HBO".to_owned()),
status: SeriesStatus::Continuing,
monitored: true,
series_type: SeriesType::Standard,
quality_profile_id: 2,
language_profile_id: 1,
seasons: Some(vec![]),
..Series::default()
},
]);
app.data.sonarr_data.series = series_table;
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
LibraryUi::draw(f, app, f.area());
});
insta::assert_snapshot!(output);
}
#[test]
fn test_library_ui_renders_update_all_series_prompt() {
let mut app = App::test_default();
app.push_navigation_stack(ActiveSonarrBlock::Series.into());
app.push_navigation_stack(ActiveSonarrBlock::UpdateAllSeriesPrompt.into());
app.data.sonarr_data.series = StatefulTable::default();
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
LibraryUi::draw(f, app, f.area());
});
@@ -29,6 +29,8 @@ mod tests {
}
mod snapshot_tests {
use crate::ui::ui_test_utils::test_utils::TerminalSize;
use super::*;
#[test]
@@ -42,7 +44,7 @@ mod tests {
..Series::default()
}]);
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
SeasonDetailsUi::draw(f, app, f.area());
});
@@ -59,7 +61,7 @@ mod tests {
..Series::default()
}]);
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
SeasonDetailsUi::draw(f, app, f.area());
});
@@ -98,7 +100,7 @@ mod tests {
.set_items(vec![SonarrRelease::default()]);
app.data.sonarr_data.season_details_modal = Some(season_details_modal);
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
SeasonDetailsUi::draw(f, app, f.area());
});
@@ -137,7 +139,7 @@ mod tests {
.set_items(vec![SonarrHistoryItem::default()]);
app.data.sonarr_data.season_details_modal = Some(season_details_modal);
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
SeasonDetailsUi::draw(f, app, f.area());
});
@@ -29,6 +29,8 @@ mod tests {
}
mod snapshot_tests {
use crate::ui::ui_test_utils::test_utils::TerminalSize;
use super::*;
#[test]
@@ -49,7 +51,7 @@ mod tests {
}]);
app.data.sonarr_data.series_history = Some(StatefulTable::default());
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
SeriesDetailsUi::draw(f, app, f.area());
});
@@ -2,28 +2,46 @@
source: src/ui/sonarr_ui/library/add_series_ui_tests.rs
expression: output
---
╭──────────────────────────────────── Add Series ────────────────────────────────────╮
│ │
──────────────────────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────╯
╭───────────────────────────────────────────────────── Add Series ─────────────────────────────────────────────────────
│ │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -2,28 +2,46 @@
source: src/ui/sonarr_ui/library/add_series_ui_tests.rs
expression: output
---
╭──────────────────────────────────── Add Series ────────────────────────────────────╮
│ │
──────────────────────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────╯
╭───────────────────────────────────────────────────── Add Series ─────────────────────────────────────────────────────
│ │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -2,23 +2,37 @@
source: src/ui/sonarr_ui/library/delete_series_ui_tests.rs
expression: output
---
╭───────────── Delete Series ─────────────╮
│ Do you really want to delete the series: │
│ Test Series? │
│ │
│ ╭───╮ │
│ Delete Series File: │ │ │
│ ╰───╯ │
───╮
│ Add List Exclusion: │
╰───╯
╰───────────────────────────────────────────╯
╭───────────────────── Delete Series ─────────────────────╮
│ Do you really want to delete the series:
Test Series?
│ │
│ │
│ ╭───╮ │
│ Delete Series File: │ │ │
│ ╰───╯ │
│ ╭───╮ │
│ Add List Exclusion: │ │ │
│ ╰───╯ │
│ │
│ │
│ │
│╭────────────────────────────╮╭───────────────────────────╮│
││ Yes ││ No ││
│╰────────────────────────────╯╰───────────────────────────╯│
╰───────────────────────────────────────────────────────────╯
@@ -2,29 +2,47 @@
source: src/ui/sonarr_ui/library/edit_series_ui_tests.rs
expression: output
---
╭─────────────────────────── Edit - Test Series ───────────────────────────╮
│ │
│ │
╭───╮
Monitored: ╰───╯
╭───╮
Season Folder: │
╰───╯
╭───────────────────────────────────╮ │
Quality Profile: ╰───────────────────────────────────╯ │
╭───────────────────────────────────╮ │
Language Profile: │English ▼ │ │
│ ╰───────────────────────────────────╯ │
╭───────────────────────────────────╮ │
Series Type: ╰───────────────────────────────────
│ ╭───────────────────────────────────╮ │
Path: │/tv/test
───────────────────────────────────
│ ╭───────────────────────────────────╮ │
Tags: ╰───────────────────────────────────╯
────────────────────────────────────────────────────────────────────────────╯
╭───────────────────────────────────────── Edit - Test Series ──────────────────────────────────────────╮
╭───╮ │
Monitored: │ │ │
╰───╯ │
╭───╮ │
│ Season Folder: │ │ │
╰───╯ │
╭─────────────────────────────────────────────────
│ Quality Profile: │HD-1080p ▼ │ │
╰─────────────────────────────────────────────────╯
╭─────────────────────────────────────────────────
│ Language Profile: │English ▼ │ │
╰─────────────────────────────────────────────────╯
│ ╭─────────────────────────────────────────────────╮ │
│ Series Type: │Standard ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/tv/test │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Tags: │ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -2,29 +2,47 @@
source: src/ui/sonarr_ui/library/episode_details_ui_tests.rs
expression: output
---
╭ Episode Details ─────────────────────────────────────────────────────────────────────╮
│ Details │ History │ File │ Manual Search │
────────────────────────────────────────────────────────────────────────────────────────
│ │
╰────────────────────────────────────────────────────────────────────────────────────────╯
╭ Episode Details ───────────────────────────────────────────────────────────────────────────────────────────────────────
│ Details │ History │ File │ Manual Search
│──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────│
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -2,29 +2,47 @@
source: src/ui/sonarr_ui/library/episode_details_ui_tests.rs
expression: output
---
╭ Episode Details ─────────────────────────────────────────────────────────────────────╮
│ Details │ History │ File │ Manual Search │
────────────────────────────────────────────────────────────────────────────────────────
│ │
╰────────────────────────────────────────────────────────────────────────────────────────╯
╭ Episode Details ───────────────────────────────────────────────────────────────────────────────────────────────────────
│ Details │ History │ File │ Manual Search
│──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────│
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -2,29 +2,47 @@
source: src/ui/sonarr_ui/library/episode_details_ui_tests.rs
expression: output
---
╭ Episode Details ─────────────────────────────────────────────────────────────────────╮
│ Details │ History │ File │ Manual Search │
────────────────────────────────────────────────────────────────────────────────────────
│ │
│ Loading ...
╰────────────────────────────────────────────────────────────────────────────────────────╯
╭ Episode Details ───────────────────────────────────────────────────────────────────────────────────────────────────────
│ Details │ History │ File │ Manual Search
│──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────│
│ Loading ...
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -2,4 +2,4 @@
source: src/ui/sonarr_ui/library/library_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
@@ -2,7 +2,7 @@
source: src/ui/sonarr_ui/library/library_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Loading ...
@@ -0,0 +1,38 @@
---
source: src/ui/sonarr_ui/library/library_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
╭─────────────────── Update All Series ───────────────────╮
│ Do you want to update info and scan your disks for all of │
│ your series? │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭────────────────────────────╮╭───────────────────────────╮│
││ Yes ││ No ││
│╰────────────────────────────╯╰───────────────────────────╯│
╰───────────────────────────────────────────────────────────╯
@@ -0,0 +1,8 @@
---
source: src/ui/sonarr_ui/library/library_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Title Year Network Status Rating Type Quality Profile Language Size Monitored Tags
=> Breaking Bad 2008 AMC Ended Standard HD-1080p English 0.00 GB 🏷
The Wire 2002 HBO Continuin Standard Any English 0.00 GB 🏷
@@ -2,30 +2,49 @@
source: src/ui/sonarr_ui/library/season_details_ui_tests.rs
expression: output
---
╭ Season 0 Details ─────────────────────────────────────────────────────────────────────────────╮
│ Episodes │ History │ Manual Search │
─────────────────────────────────────────────────────────────────────────────────────────────────
│ Source Age ⛔ Title Indexer Size Peers Languag Quality│
│=> 0 days 0.0 GB │
│ │
╰─────────────────────────────────────────────────────────────────────────────────────────────────╯
╭ Season 0 Details ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ Episodes │ History │ Manual Search │
│───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────│
Source Age Title Indexer Size Peers Language Quality
│=> 0 days 0.0 GB │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -2,30 +2,49 @@
source: src/ui/sonarr_ui/library/season_details_ui_tests.rs
expression: output
---
╭ Season 0 Details ─────────────────────────────────────────────────────────────────────────────╮
│ Episodes │ History │ Manual Search │
─────────────────────────────────────────────────────────────────────────────────────────────────
Source Title Event Type Language Quality Date
│=> unknown 1970-01-01 00:00:00│
│ │
╰─────────────────────────────────────────────────────────────────────────────────────────────────╯
╭ Season 0 Details ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ Episodes │ History │ Manual Search
│───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────│
Source Title Event Type Language Quality Date
│=> unknown 1970-01-01 00:00:00 UTC │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -2,32 +2,51 @@
source: src/ui/sonarr_ui/library/series_details_ui_tests.rs
expression: output
---
╭ Test Series ───────────────────────────────────────────────────────────────────────────────────────────╮
│Title: Test Series
│Overview:
│Network:
│Status: Continuing
│Genres:
│Rating: 0%
│Year: 0
│Runtime: 0 minutes
│Path:
│╭ Series Details ──────────────────────────────────────────────────────────────────────────────────────╮│
││ Seasons │ History
││────────────────────────────────────────────────────────────────────────────────────────────────────────││
││
││
││
││
││
││ ││
││ ││
││ ││
││ ││
││ ││
││ ││
││ ││
│╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯│
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Test Series ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│Title: Test Series
│Overview:
│Network:
│Status: Continuing
│Genres:
│Rating: 0%
│Year: 0
│Runtime: 0 minutes
│Path: │
│Quality Profile: HD-1080p
│Language Profile: English │
│Monitored: No
│╭ Series Details ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮│
││ Seasons │ History ││
││─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────││
││ ││
││ ││
││ ││
││ ││
││ ││
││ ││
││ ││
││ ││
││ ││
││ ││
││ ││
││ ││
││ ││
││ ││
││ ││
││ ││
││ ││
││ ││
││ ││
││ ││
││ ││
││ ││
││ ││
│╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯│
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -23,6 +23,8 @@ mod tests {
}
mod snapshot_tests {
use crate::ui::ui_test_utils::test_utils::TerminalSize;
use super::*;
#[test]
@@ -31,7 +33,7 @@ mod tests {
app.is_loading = true;
app.push_navigation_stack(ActiveSonarrBlock::RootFolders.into());
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
RootFoldersUi::draw(f, app, f.area());
});
@@ -44,7 +46,7 @@ mod tests {
app.push_navigation_stack(ActiveSonarrBlock::RootFolders.into());
app.data.sonarr_data.root_folders = StatefulTable::default();
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
RootFoldersUi::draw(f, app, f.area());
});
@@ -71,7 +73,7 @@ mod tests {
},
]);
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
RootFoldersUi::draw(f, app, f.area());
});
@@ -85,7 +87,7 @@ mod tests {
app.data.sonarr_data.root_folders = StatefulTable::default();
app.data.sonarr_data.edit_root_folder = Some(HorizontallyScrollableText::default());
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
RootFoldersUi::draw(f, app, f.area());
});
@@ -2,19 +2,30 @@
source: src/ui/sonarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
╭────── Add Root Folder ───────╮
<esc> cancel
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
╭───────────── Add Root Folder ─────────────╮
│ │
╰─────────────────────────────────────────────╯
<esc> cancel
@@ -2,4 +2,4 @@
source: src/ui/sonarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
@@ -2,7 +2,7 @@
source: src/ui/sonarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Loading ...
@@ -2,7 +2,7 @@
source: src/ui/sonarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Path Free Space Unmapped Folders
=> /tv 100.00 GB 0
/media/tv 50.00 GB 0
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Path Free Space Unmapped Folders
=> /tv 100.00 GB 0
/media/tv 50.00 GB 0
@@ -2,33 +2,53 @@
source: src/ui/sonarr_ui/sonarr_ui_tests.rs
expression: output
---
╭ Series ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Library │ Downloads │ Blocklist │ History │ Root Folders │ Indexers │ System │
│──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────│
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭ Series ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ Library │ Downloads │ Blocklist │ History │ Root Folders │ Indexers │ System
│───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -2,33 +2,53 @@
source: src/ui/sonarr_ui/sonarr_ui_tests.rs
expression: output
---
╭ Series ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Library │ Downloads │ Blocklist │ History │ Root Folders │ Indexers │ System │
│──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────│
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭ Series ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ Library │ Downloads │ Blocklist │ History │ Root Folders │ Indexers │ System
│───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -2,33 +2,53 @@
source: src/ui/sonarr_ui/sonarr_ui_tests.rs
expression: output
---
╭ Series ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Library │ Downloads │ Blocklist │ History │ Root Folders │ Indexers │ System │
│──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────│
│ Title Year Network Status Rating Type Quality Prof Language Size Monitor Tags │
│=> Test Series 0 Contin Standar Any English 0.00 GB │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭ Series ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ Library │ Downloads │ Blocklist │ History │ Root Folders │ Indexers │ System
│───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ Title Year Network Status Rating Type Quality Profile Language Size Monitored Tags
│=> Test Series 0 Continuin Standard Any English 0.00 GB
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+5 -3
View File
@@ -21,6 +21,8 @@ mod tests {
}
mod snapshot_tests {
use crate::ui::ui_test_utils::test_utils::TerminalSize;
use super::*;
#[test]
@@ -51,7 +53,7 @@ mod tests {
},
]);
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
SonarrUi::draw(f, app, f.area());
});
@@ -73,7 +75,7 @@ mod tests {
.history
.set_items(vec![SonarrHistoryItem::default()]);
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
SonarrUi::draw(f, app, f.area());
});
@@ -96,7 +98,7 @@ mod tests {
..Series::default()
}]);
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
SonarrUi::draw(f, app, f.area());
});
@@ -2,29 +2,47 @@
source: src/ui/sonarr_ui/system/system_details_ui_tests.rs
expression: output
---
╭ Tasks ───────────────────────────────────────────────────────────────────────────────╮
│ │
│ │
│ Loading ...
╰────────────────────────────────────────────────────────────────────────────────────────╯
╭ Tasks ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Loading ...
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -2,29 +2,47 @@
source: src/ui/sonarr_ui/system/system_details_ui_tests.rs
expression: output
---
╭ Log Details ─────────────────────────────────────────────────────────────────────────╮
│ │
│ │
╰────────────────────────────────────────────────────────────────────────────────────────╯
╭ Log Details ───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -2,29 +2,47 @@
source: src/ui/sonarr_ui/system/system_details_ui_tests.rs
expression: output
---
╭ Tasks ───────────────────────────────────────────────────────────────────────────────╮
│ │
│ │
│ │
╰────────────────────────────────────────────────────────────────────────────────────────╯
╭ Tasks ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Name Interval Last Execution Next Execution
│=> Refresh Series 6 hours 2 hours ago 3 hours
│ Check for Updates 1 day 12 hours ago 11 hours
│ Housekeeping 1 day 1 day ago now │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -2,33 +2,53 @@
source: src/ui/sonarr_ui/system/system_ui_tests.rs
expression: output
---
╭ Tasks ─────────────────────────────────────────────────╮╭ Queued Events ─────────────────────────────────────────╮
││
││
│ Loading ... ││ Loading ...
││
││
││
││
││
││
││
││
││
││
╰──────────────────────────────────────────────────────────╯╰──────────────────────────────────────────────────────────╯
╭ Logs ──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ │
Loading ...
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭ Tasks ────────────────────────────────────────────────────────────────────────╮╭ Queued Events ───────────────────────────────────────────────────────────────╮
││
││
│ Loading ... ││ Loading ...
││
││
││
││
││
││
││
││
││
││
│ ││ │
│ ││ │
││
││
││
││
││
││
││
││
╰─────────────────────────────────────────────────────────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────╯
╭ Logs ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
Loading ...
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -2,33 +2,53 @@
source: src/ui/sonarr_ui/system/system_ui_tests.rs
expression: output
---
╭ Tasks ─────────────────────────────────────────────────╮╭ Queued Events ─────────────────────────────────────────╮
││
││
││
││
││
││
││
││
││
││
││
││
││
╰──────────────────────────────────────────────────────────╯╰──────────────────────────────────────────────────────────╯
╭ Logs ──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭ Tasks ────────────────────────────────────────────────────────────────────────╮╭ Queued Events ───────────────────────────────────────────────────────────────╮
││
││
││
││
││
││
││
││
││
││
││
││
││
│ ││ │
│ ││ │
││
││
││
││
││
││
││
││
╰─────────────────────────────────────────────────────────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────╯
╭ Logs ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -24,6 +24,10 @@ mod tests {
mod snapshot_tests {
use super::*;
use crate::models::sonarr_models::{SonarrTask, SonarrTaskName};
use crate::models::stateful_table::StatefulTable;
use crate::ui::ui_test_utils::test_utils::TerminalSize;
use chrono::{Duration, Utc};
#[test]
fn test_system_details_ui_renders_loading_tasks() {
@@ -31,7 +35,7 @@ mod tests {
app.is_loading = true;
app.push_navigation_stack(ActiveSonarrBlock::SystemTasks.into());
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
SystemDetailsUi::draw(f, app, f.area());
});
@@ -51,7 +55,7 @@ mod tests {
.into(),
]);
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
SystemDetailsUi::draw(f, app, f.area());
});
@@ -63,7 +67,34 @@ mod tests {
let mut app = App::test_default();
app.push_navigation_stack(ActiveSonarrBlock::SystemTasks.into());
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let now = Utc::now();
let mut tasks = StatefulTable::default();
tasks.set_items(vec![
SonarrTask {
name: "Refresh Series".to_owned(),
task_name: SonarrTaskName::RefreshSeries,
interval: 360,
last_execution: now - Duration::hours(2),
next_execution: now + Duration::hours(4),
},
SonarrTask {
name: "Check for Updates".to_owned(),
task_name: SonarrTaskName::ApplicationUpdateCheck,
interval: 1440,
last_execution: now - Duration::hours(12),
next_execution: now + Duration::hours(12),
},
SonarrTask {
name: "Housekeeping".to_owned(),
task_name: SonarrTaskName::Housekeeping,
interval: 1440,
last_execution: now - Duration::hours(24),
next_execution: now,
},
]);
app.data.sonarr_data.tasks = tasks;
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
SystemDetailsUi::draw(f, app, f.area());
});
+4 -2
View File
@@ -26,6 +26,8 @@ mod tests {
}
mod snapshot_tests {
use crate::ui::ui_test_utils::test_utils::TerminalSize;
use super::*;
#[test]
@@ -34,7 +36,7 @@ mod tests {
app.is_loading = true;
app.push_navigation_stack(ActiveSonarrBlock::System.into());
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
SystemUi::draw(f, app, f.area());
});
@@ -46,7 +48,7 @@ mod tests {
let mut app = App::test_default();
app.push_navigation_stack(ActiveSonarrBlock::System.into());
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
SystemUi::draw(f, app, f.area());
});