diff --git a/src/ui/readarr_ui/history/history_ui_tests.rs b/src/ui/readarr_ui/history/history_ui_tests.rs new file mode 100644 index 00000000..77615ae5 --- /dev/null +++ b/src/ui/readarr_ui/history/history_ui_tests.rs @@ -0,0 +1,154 @@ +#[cfg(test)] +mod tests { + use strum::IntoEnumIterator; + + use crate::app::App; + use crate::models::servarr_data::readarr::readarr_data::{ActiveReadarrBlock, HISTORY_BLOCKS}; + use crate::ui::DrawUi; + use crate::ui::readarr_ui::history::HistoryUi; + use crate::ui::ui_test_utils::test_utils::render_to_string_with_app; + + #[test] + fn test_history_ui_accepts() { + ActiveReadarrBlock::iter().for_each(|active_readarr_block| { + if HISTORY_BLOCKS.contains(&active_readarr_block) { + assert!(HistoryUi::accepts(active_readarr_block.into())); + } else { + assert!(!HistoryUi::accepts(active_readarr_block.into())); + } + }); + } + + mod snapshot_tests { + use chrono::DateTime; + use rstest::rstest; + + use crate::models::readarr_models::{ + ReadarrHistoryData, ReadarrHistoryEventType, ReadarrHistoryItem, + }; + use crate::models::servarr_models::{Quality, QualityWrapper}; + use crate::ui::ui_test_utils::test_utils::TerminalSize; + + use super::*; + + #[test] + fn test_history_ui_renders_loading() { + let mut app = App::test_default(); + app.is_loading = true; + app.push_navigation_stack(ActiveReadarrBlock::History.into()); + + let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| { + HistoryUi::draw(f, app, f.area()); + }); + + insta::assert_snapshot!(output); + } + + #[rstest] + fn test_history_ui_renders_empty( + #[values(ActiveReadarrBlock::History, ActiveReadarrBlock::HistoryItemDetails)] + active_readarr_block: ActiveReadarrBlock, + ) { + let mut app = App::test_default(); + app.push_navigation_stack(active_readarr_block.into()); + + let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| { + HistoryUi::draw(f, app, f.area()); + }); + + insta::assert_snapshot!(format!("empty_history_tab_{active_readarr_block}"), output); + } + + #[rstest] + fn test_history_ui_renders( + #[values( + ActiveReadarrBlock::History, + ActiveReadarrBlock::HistoryItemDetails, + ActiveReadarrBlock::HistorySortPrompt, + ActiveReadarrBlock::FilterHistory, + ActiveReadarrBlock::FilterHistoryError, + ActiveReadarrBlock::SearchHistory, + ActiveReadarrBlock::SearchHistoryError + )] + active_readarr_block: ActiveReadarrBlock, + ) { + let mut app = App::test_default_fully_populated(); + app.push_navigation_stack(active_readarr_block.into()); + + let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| { + HistoryUi::draw(f, app, f.area()); + }); + + insta::assert_snapshot!(format!("history_tab_{active_readarr_block}"), output); + } + + #[rstest] + fn test_history_ui_renders_second_item_selected( + #[values(ActiveReadarrBlock::History, ActiveReadarrBlock::HistoryItemDetails)] + active_readarr_block: ActiveReadarrBlock, + ) { + let mut app = App::test_default(); + app.data.readarr_data.history.set_items(history_vec()); + app.data.readarr_data.history.select_index(Some(1)); + app.push_navigation_stack(active_readarr_block.into()); + + let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| { + HistoryUi::draw(f, app, f.area()); + }); + + insta::assert_snapshot!( + format!("history_second_item_selected_{active_readarr_block}"), + output + ); + } + + fn history_vec() -> Vec { + vec![ + ReadarrHistoryItem { + id: 1, + author_id: 1, + book_id: 1, + source_title: "First Source Title".into(), + quality: QualityWrapper { + quality: Quality { + name: "EPUB".to_owned(), + }, + }, + date: DateTime::from(DateTime::parse_from_rfc3339("2023-05-20T21:29:16Z").unwrap()), + event_type: ReadarrHistoryEventType::Grabbed, + data: ReadarrHistoryData { + indexer: Some("DrunkenSlug".to_owned()), + nzb_info_url: Some("https://drunkenslug.com/details/first".to_owned()), + release_group: Some("FirstReleaseGroup".to_owned()), + age: Some("3".to_owned()), + published_date: Some(DateTime::from( + DateTime::parse_from_rfc3339("2023-05-18T08:15:00Z").unwrap(), + )), + download_client_name: Some("nzbget".to_owned()), + ..ReadarrHistoryData::default() + }, + }, + ReadarrHistoryItem { + id: 2, + author_id: 2, + book_id: 2, + source_title: "Second Source Title".into(), + quality: QualityWrapper { + quality: Quality { + name: "MOBI".to_owned(), + }, + }, + date: DateTime::from(DateTime::parse_from_rfc3339("2024-08-14T09:03:47Z").unwrap()), + event_type: ReadarrHistoryEventType::DownloadFailed, + data: ReadarrHistoryData { + download_client_name: Some("sabnzbd".to_owned()), + message: Some("The download client reported a failure".to_owned()), + release_group: Some("SecondReleaseGroup".to_owned()), + indexer: Some("Nyaa".to_owned()), + ..ReadarrHistoryData::default() + }, + }, + ] + } + } +} diff --git a/src/ui/readarr_ui/history/mod.rs b/src/ui/readarr_ui/history/mod.rs new file mode 100644 index 00000000..eddaef27 --- /dev/null +++ b/src/ui/readarr_ui/history/mod.rs @@ -0,0 +1,122 @@ +use super::readarr_ui_utils::create_history_event_details; +use crate::app::App; +use crate::models::Route; +use crate::models::readarr_models::ReadarrHistoryItem; +use crate::models::servarr_data::readarr::readarr_data::{ActiveReadarrBlock, HISTORY_BLOCKS}; +use crate::ui::DrawUi; +use crate::ui::styles::{ManagarrStyle, secondary_style}; +use crate::ui::utils::{get_width_from_percentage, layout_block_top_border}; +use crate::ui::widgets::managarr_table::ManagarrTable; +use crate::ui::widgets::message::Message; +use crate::ui::widgets::popup::{Popup, Size}; +use ratatui::Frame; +use ratatui::layout::{Alignment, Rect}; +use ratatui::prelude::Constraint; +use ratatui::text::Text; +use ratatui::widgets::{Cell, Row}; + +#[cfg(test)] +#[path = "history_ui_tests.rs"] +mod history_ui_tests; + +pub(super) struct HistoryUi; + +impl DrawUi for HistoryUi { + fn accepts(route: Route) -> bool { + if let Route::Readarr(active_readarr_block, _) = route { + return HISTORY_BLOCKS.contains(&active_readarr_block); + } + + false + } + + fn draw(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) { + if let Route::Readarr(active_readarr_block, _) = app.get_current_route() { + draw_history_table(f, app, area); + + if active_readarr_block == ActiveReadarrBlock::HistoryItemDetails { + draw_history_item_details_popup(f, app); + } + } + } +} + +fn draw_history_table(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) { + let current_selection = if app.data.readarr_data.history.items.is_empty() { + ReadarrHistoryItem::default() + } else { + app.data.readarr_data.history.current_selection().clone() + }; + if let Route::Readarr(active_readarr_block, _) = app.get_current_route() { + let history_row_mapping = |history_item: &ReadarrHistoryItem| { + let ReadarrHistoryItem { + source_title, + quality, + event_type, + date, + .. + } = history_item; + + source_title.scroll_left_or_reset( + get_width_from_percentage(area, 50), + current_selection == *history_item, + app.should_text_scroll, + ); + + Row::new(vec![ + Cell::from(source_title.to_string()), + Cell::from(event_type.to_string()), + Cell::from(quality.quality.name.to_owned()), + Cell::from(date.to_string()), + ]) + .primary() + }; + let history_table = ManagarrTable::new( + Some(&mut app.data.readarr_data.history), + history_row_mapping, + ) + .block(layout_block_top_border()) + .loading(app.is_loading) + .sorting(active_readarr_block == ActiveReadarrBlock::HistorySortPrompt) + .searching(active_readarr_block == ActiveReadarrBlock::SearchHistory) + .search_produced_empty_results(active_readarr_block == ActiveReadarrBlock::SearchHistoryError) + .filtering(active_readarr_block == ActiveReadarrBlock::FilterHistory) + .filter_produced_empty_results(active_readarr_block == ActiveReadarrBlock::FilterHistoryError) + .headers(["Source Title", "Event Type", "Quality", "Date"]) + .constraints([ + Constraint::Percentage(50), + Constraint::Percentage(18), + Constraint::Percentage(12), + Constraint::Percentage(20), + ]); + + if [ + ActiveReadarrBlock::SearchHistory, + ActiveReadarrBlock::FilterHistory, + ] + .contains(&active_readarr_block) + { + history_table.show_cursor(f, area); + } + + f.render_widget(history_table, area); + } +} + +fn draw_history_item_details_popup(f: &mut Frame<'_>, app: &mut App<'_>) { + let current_selection = if app.data.readarr_data.history.items.is_empty() { + ReadarrHistoryItem::default() + } else { + app.data.readarr_data.history.current_selection().clone() + }; + + let line_vec = create_history_event_details(current_selection); + let text = Text::from(line_vec); + + let message = Message::new(text) + .title("Details") + .style(secondary_style()) + .alignment(Alignment::Left); + + f.render_widget(Popup::new(message).size(Size::NarrowLongMessage), f.area()); +} diff --git a/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__empty_history_tab_History.snap b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__empty_history_tab_History.snap new file mode 100644 index 00000000..f7b5e42a --- /dev/null +++ b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__empty_history_tab_History.snap @@ -0,0 +1,5 @@ +--- +source: src/ui/readarr_ui/history/history_ui_tests.rs +expression: output +--- +───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── diff --git a/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__empty_history_tab_HistoryItemDetails.snap b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__empty_history_tab_HistoryItemDetails.snap new file mode 100644 index 00000000..bc14d79e --- /dev/null +++ b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__empty_history_tab_HistoryItemDetails.snap @@ -0,0 +1,38 @@ +--- +source: src/ui/readarr_ui/history/history_ui_tests.rs +expression: output +--- +───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + + + + + + + + + + + + + + + + ╭─────────────────────────────────── Details ───────────────────────────────────╮ + │Source Title: │ + │Event Type: unknown │ + │Quality: │ + │Date: 1970-01-01 00:00:00 UTC │ + │No additional details available. │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + ╰─────────────────────────────────────────────────────────────────────────────────╯ diff --git a/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_second_item_selected_History.snap b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_second_item_selected_History.snap new file mode 100644 index 00000000..26950843 --- /dev/null +++ b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_second_item_selected_History.snap @@ -0,0 +1,8 @@ +--- +source: src/ui/readarr_ui/history/history_ui_tests.rs +expression: output +--- +───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + Source Title Event Type Quality Date + First Source Title grabbed EPUB 2023-05-20 21:29:16 UTC +=> Second Source Title downloadFailed MOBI 2024-08-14 09:03:47 UTC diff --git a/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_second_item_selected_HistoryItemDetails.snap b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_second_item_selected_HistoryItemDetails.snap new file mode 100644 index 00000000..2324e2f0 --- /dev/null +++ b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_second_item_selected_HistoryItemDetails.snap @@ -0,0 +1,38 @@ +--- +source: src/ui/readarr_ui/history/history_ui_tests.rs +expression: output +--- +───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + Source Title Event Type Quality Date + First Source Title grabbed EPUB 2023-05-20 21:29:16 UTC +=> Second Source Title downloadFailed MOBI 2024-08-14 09:03:47 UTC + + + + + + + + + + + + + ╭─────────────────────────────────── Details ───────────────────────────────────╮ + │Source Title: Second Source Title │ + │Event Type: downloadFailed │ + │Quality: MOBI │ + │Date: 2024-08-14 09:03:47 UTC │ + │Download Client: sabnzbd │ + │Message: The download client reported a failure │ + │Release Group: SecondReleaseGroup │ + │Indexer: Nyaa │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + ╰─────────────────────────────────────────────────────────────────────────────────╯ diff --git a/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_FilterHistory.snap b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_FilterHistory.snap new file mode 100644 index 00000000..b0b4c285 --- /dev/null +++ b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_FilterHistory.snap @@ -0,0 +1,28 @@ +--- +source: src/ui/readarr_ui/history/history_ui_tests.rs +expression: output +--- +───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + Source Title ▼ Event Type Quality Date +=> Test Source Title grabbed EPUB 2023-05-20 21:29:16 UTC + + + + + + + + + + + + + + + + + + + ╭───────────────── Filter ──────────────────╮ + │test filter │ + ╰─────────────────────────────────────────────╯ diff --git a/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_FilterHistoryError.snap b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_FilterHistoryError.snap new file mode 100644 index 00000000..1f909902 --- /dev/null +++ b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_FilterHistoryError.snap @@ -0,0 +1,31 @@ +--- +source: src/ui/readarr_ui/history/history_ui_tests.rs +expression: output +--- +───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + Source Title ▼ Event Type Quality Date +=> Test Source Title grabbed EPUB 2023-05-20 21:29:16 UTC + + + + + + + + + + + + + + + + + + + + + ╭─────────────── Error ───────────────╮ + │The given filter produced empty results│ + │ │ + ╰───────────────────────────────────────╯ diff --git a/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_History.snap b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_History.snap new file mode 100644 index 00000000..e3a516b0 --- /dev/null +++ b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_History.snap @@ -0,0 +1,7 @@ +--- +source: src/ui/readarr_ui/history/history_ui_tests.rs +expression: output +--- +───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + Source Title ▼ Event Type Quality Date +=> Test Source Title grabbed EPUB 2023-05-20 21:29:16 UTC diff --git a/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_HistoryItemDetails.snap b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_HistoryItemDetails.snap new file mode 100644 index 00000000..79747de7 --- /dev/null +++ b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_HistoryItemDetails.snap @@ -0,0 +1,38 @@ +--- +source: src/ui/readarr_ui/history/history_ui_tests.rs +expression: output +--- +───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + Source Title ▼ Event Type Quality Date +=> Test Source Title grabbed EPUB 2023-05-20 21:29:16 UTC + + + + + + + + + + + + + + ╭─────────────────────────────────── Details ───────────────────────────────────╮ + │Source Title: Test Source Title │ + │Event Type: grabbed │ + │Quality: EPUB │ + │Date: 2023-05-20 21:29:16 UTC │ + │Indexer: │ + │NZB Info URL: │ + │Release Group: │ + │Age: 0 days │ + │Published Date: 1970-01-01 00:00:00 UTC │ + │Download Client: │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + ╰─────────────────────────────────────────────────────────────────────────────────╯ diff --git a/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_HistorySortPrompt.snap b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_HistorySortPrompt.snap new file mode 100644 index 00000000..c6d2c733 --- /dev/null +++ b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_HistorySortPrompt.snap @@ -0,0 +1,42 @@ +--- +source: src/ui/readarr_ui/history/history_ui_tests.rs +expression: output +--- +───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + Source Title Event Type Quality Date +=> Test Source Title grabbed EPUB 2023-05-20 21:29:16 UTC + + + + + + + + + + + ╭───────────────────────────────╮ + │Date │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + ╰───────────────────────────────╯ diff --git a/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_SearchHistory.snap b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_SearchHistory.snap new file mode 100644 index 00000000..ce8e938c --- /dev/null +++ b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_SearchHistory.snap @@ -0,0 +1,28 @@ +--- +source: src/ui/readarr_ui/history/history_ui_tests.rs +expression: output +--- +───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + Source Title ▼ Event Type Quality Date +=> Test Source Title grabbed EPUB 2023-05-20 21:29:16 UTC + + + + + + + + + + + + + + + + + + + ╭───────────────── Search ──────────────────╮ + │test search │ + ╰─────────────────────────────────────────────╯ diff --git a/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_SearchHistoryError.snap b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_SearchHistoryError.snap new file mode 100644 index 00000000..4d4ea130 --- /dev/null +++ b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_tab_SearchHistoryError.snap @@ -0,0 +1,31 @@ +--- +source: src/ui/readarr_ui/history/history_ui_tests.rs +expression: output +--- +───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + Source Title ▼ Event Type Quality Date +=> Test Source Title grabbed EPUB 2023-05-20 21:29:16 UTC + + + + + + + + + + + + + + + + + + + + + ╭─────────────── Error ───────────────╮ + │ No items found matching search │ + │ │ + ╰───────────────────────────────────────╯ diff --git a/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_ui_renders_loading.snap b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_ui_renders_loading.snap new file mode 100644 index 00000000..bfafe99c --- /dev/null +++ b/src/ui/readarr_ui/history/snapshots/managarr__ui__readarr_ui__history__history_ui_tests__tests__snapshot_tests__history_ui_renders_loading.snap @@ -0,0 +1,8 @@ +--- +source: src/ui/readarr_ui/history/history_ui_tests.rs +expression: output +--- +───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + + + Loading ... diff --git a/src/ui/readarr_ui/mod.rs b/src/ui/readarr_ui/mod.rs index 5477ab33..8539533f 100644 --- a/src/ui/readarr_ui/mod.rs +++ b/src/ui/readarr_ui/mod.rs @@ -3,6 +3,7 @@ use crate::ui::ui_test_utils::test_utils::Utc; use chrono::Duration; #[cfg(not(test))] use chrono::Utc; +use history::HistoryUi; use library::LibraryUi; use ratatui::{ Frame, @@ -38,6 +39,7 @@ use crate::{ mod blocklist; mod downloads; +mod history; mod library; mod readarr_ui_utils; @@ -60,6 +62,7 @@ impl DrawUi for ReadarrUi { _ if LibraryUi::accepts(route) => LibraryUi::draw(f, app, content_area), _ if DownloadsUi::accepts(route) => DownloadsUi::draw(f, app, content_area), _ if BlocklistUi::accepts(route) => BlocklistUi::draw(f, app, content_area), + _ if HistoryUi::accepts(route) => HistoryUi::draw(f, app, content_area), _ => (), } } diff --git a/src/ui/readarr_ui/snapshots/managarr__ui__readarr_ui__readarr_ui_tests__tests__snapshot_tests__readarr_tabs_History.snap b/src/ui/readarr_ui/snapshots/managarr__ui__readarr_ui__readarr_ui_tests__tests__snapshot_tests__readarr_tabs_History.snap index d3f01721..f1ef5ee4 100644 --- a/src/ui/readarr_ui/snapshots/managarr__ui__readarr_ui__readarr_ui_tests__tests__snapshot_tests__readarr_tabs_History.snap +++ b/src/ui/readarr_ui/snapshots/managarr__ui__readarr_ui__readarr_ui_tests__tests__snapshot_tests__readarr_tabs_History.snap @@ -4,9 +4,9 @@ expression: output --- ╭ Authors ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ Library │ Downloads │ Blocklist │ History │ Root Folders │ Indexers │ System │ -│ │ -│ │ -│ │ +│───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────│ +│ Source Title ▼ Event Type Quality Date │ +│=> Test Source Title grabbed EPUB 2023-05-20 21:29:16 UTC │ │ │ │ │ │ │