feat(readarr): add the root folders UI

Renders the root folders table, the delete prompt and the add root
folder modal. The modal conveys its current step purely through
styling, which rendered output discards, so the step highlights are
computed by a separate function whose branches are asserted directly.
This commit is contained in:
Dark-Alex-17 committed 2026-09-08 09:15:37 -06:00
1 parent 5e1f3bb7e3
commit 58fe7d79ae
39 files changed
+2193 -3

No files matched your search

+3
View File
@@ -24,6 +24,7 @@ use super::{
}; };
use crate::ui::readarr_ui::blocklist::BlocklistUi; use crate::ui::readarr_ui::blocklist::BlocklistUi;
use crate::ui::readarr_ui::downloads::DownloadsUi; use crate::ui::readarr_ui::downloads::DownloadsUi;
use crate::ui::readarr_ui::root_folders::RootFoldersUi;
use crate::ui::utils::{extract_monitored_disk_space_vec, extract_monitored_root_folders}; use crate::ui::utils::{extract_monitored_disk_space_vec, extract_monitored_root_folders};
use crate::{ use crate::{
app::App, app::App,
@@ -42,6 +43,7 @@ mod downloads;
mod history; mod history;
mod library; mod library;
mod readarr_ui_utils; mod readarr_ui_utils;
mod root_folders;
#[cfg(test)] #[cfg(test)]
#[path = "readarr_ui_tests.rs"] #[path = "readarr_ui_tests.rs"]
@@ -63,6 +65,7 @@ impl DrawUi for ReadarrUi {
_ if DownloadsUi::accepts(route) => DownloadsUi::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 BlocklistUi::accepts(route) => BlocklistUi::draw(f, app, content_area),
_ if HistoryUi::accepts(route) => HistoryUi::draw(f, app, content_area), _ if HistoryUi::accepts(route) => HistoryUi::draw(f, app, content_area),
_ if RootFoldersUi::accepts(route) => RootFoldersUi::draw(f, app, content_area),
_ => (), _ => (),
} }
} }
@@ -0,0 +1,274 @@
use std::sync::atomic::Ordering;
use ratatui::Frame;
use ratatui::layout::{Constraint, Rect};
use ratatui::prelude::Layout;
use ratatui::widgets::ListItem;
use crate::app::App;
use crate::models::Route;
use crate::models::servarr_data::readarr::modals::AddReadarrRootFolderModal;
use crate::models::servarr_data::readarr::readarr_data::{
ADD_ROOT_FOLDER_BLOCKS, ActiveReadarrBlock,
};
use crate::render_selectable_input_box;
use crate::ui::utils::title_block_centered;
use crate::ui::widgets::button::Button;
use crate::ui::widgets::input_box::InputBox;
use crate::ui::widgets::popup::{Popup, Size};
use crate::ui::widgets::selectable_list::SelectableList;
use crate::ui::{DrawUi, draw_popup};
#[cfg(test)]
#[path = "add_root_folder_ui_tests.rs"]
mod add_root_folder_ui_tests;
pub(super) struct AddRootFolderUi;
impl DrawUi for AddRootFolderUi {
fn accepts(route: Route) -> bool {
let Route::Readarr(active_readarr_block, _) = route else {
return false;
};
ADD_ROOT_FOLDER_BLOCKS.contains(&active_readarr_block)
}
fn draw(f: &mut Frame<'_>, app: &mut App<'_>, _area: Rect) {
if let Route::Readarr(active_readarr_block, _) = app.get_current_route() {
let draw_add_root_folder_prompt =
|f: &mut Frame<'_>, app: &mut App<'_>, prompt_area: Rect| {
draw_add_root_folder_confirmation_prompt(f, app, prompt_area);
match active_readarr_block {
ActiveReadarrBlock::AddRootFolderSelectMonitor => {
draw_add_root_folder_select_monitor_popup(f, app);
}
ActiveReadarrBlock::AddRootFolderSelectMonitorNewItems => {
draw_add_root_folder_select_monitor_new_items_popup(f, app);
}
ActiveReadarrBlock::AddRootFolderSelectQualityProfile => {
draw_add_root_folder_select_quality_profile_popup(f, app);
}
ActiveReadarrBlock::AddRootFolderSelectMetadataProfile => {
draw_add_root_folder_select_metadata_profile_popup(f, app);
}
_ => (),
}
};
draw_popup(f, app, draw_add_root_folder_prompt, Size::Long);
}
}
}
#[derive(PartialEq, Eq)]
#[cfg_attr(test, derive(Debug))]
struct AddRootFolderPromptHighlights {
name: bool,
path: bool,
monitor: bool,
monitor_new_items: bool,
quality_profile: bool,
metadata_profile: bool,
tags: bool,
confirm: bool,
}
fn add_root_folder_prompt_highlights(
selected_block: ActiveReadarrBlock,
) -> AddRootFolderPromptHighlights {
AddRootFolderPromptHighlights {
name: selected_block == ActiveReadarrBlock::AddRootFolderNameInput,
path: selected_block == ActiveReadarrBlock::AddRootFolderPathInput,
monitor: selected_block == ActiveReadarrBlock::AddRootFolderSelectMonitor,
monitor_new_items: selected_block == ActiveReadarrBlock::AddRootFolderSelectMonitorNewItems,
quality_profile: selected_block == ActiveReadarrBlock::AddRootFolderSelectQualityProfile,
metadata_profile: selected_block == ActiveReadarrBlock::AddRootFolderSelectMetadataProfile,
tags: selected_block == ActiveReadarrBlock::AddRootFolderTagsInput,
confirm: selected_block == ActiveReadarrBlock::AddRootFolderConfirmPrompt,
}
}
fn draw_add_root_folder_confirmation_prompt(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
let title = "Add Root Folder";
f.render_widget(title_block_centered(title), area);
let yes_no_value = app.data.readarr_data.prompt_confirm;
let selected_block = app.data.readarr_data.selected_block.get_active_block();
let highlights = add_root_folder_prompt_highlights(selected_block);
let AddReadarrRootFolderModal {
name,
path,
monitor_list,
monitor_new_items_list,
quality_profile_list,
metadata_profile_list,
tags,
} = app
.data
.readarr_data
.add_root_folder_modal
.as_ref()
.expect("add_root_folder_modal must exist in this context");
let selected_monitor = monitor_list.current_selection();
let selected_monitor_new_items = monitor_new_items_list.current_selection();
let selected_quality_profile = quality_profile_list.current_selection();
let selected_metadata_profile = metadata_profile_list.current_selection();
let [
_,
name_area,
path_area,
monitor_area,
monitor_new_items_area,
quality_profile_area,
metadata_profile_area,
tags_area,
_,
buttons_area,
] = Layout::vertical([
Constraint::Fill(1),
Constraint::Length(3),
Constraint::Length(3),
Constraint::Length(3),
Constraint::Length(3),
Constraint::Length(3),
Constraint::Length(3),
Constraint::Length(3),
Constraint::Fill(1),
Constraint::Length(3),
])
.margin(1)
.areas(area);
let [save_area, cancel_area] =
Layout::horizontal([Constraint::Percentage(50), Constraint::Percentage(50)])
.areas(buttons_area);
let monitor_drop_down_button = Button::default()
.title(selected_monitor.to_display_str())
.label("Monitor")
.icon("▼")
.selected(highlights.monitor);
let monitor_new_items_drop_down_button = Button::default()
.title(selected_monitor_new_items.to_display_str())
.label("Monitor New Books")
.icon("▼")
.selected(highlights.monitor_new_items);
let quality_profile_drop_down_button = Button::default()
.title(selected_quality_profile)
.label("Quality Profile")
.icon("▼")
.selected(highlights.quality_profile);
let metadata_profile_drop_down_button = Button::default()
.title(selected_metadata_profile)
.label("Metadata Profile")
.icon("▼")
.selected(highlights.metadata_profile);
if let Route::Readarr(active_readarr_block, _) = app.get_current_route() {
let name_input_box = InputBox::new(&name.text)
.offset(name.offset.load(Ordering::SeqCst))
.label("Name")
.highlighted(highlights.name)
.selected(active_readarr_block == ActiveReadarrBlock::AddRootFolderNameInput);
let path_input_box = InputBox::new(&path.text)
.offset(path.offset.load(Ordering::SeqCst))
.label("Path")
.highlighted(highlights.path)
.selected(active_readarr_block == ActiveReadarrBlock::AddRootFolderPathInput);
let tags_input_box = InputBox::new(&tags.text)
.offset(tags.offset.load(Ordering::SeqCst))
.label("Tags")
.highlighted(highlights.tags)
.selected(active_readarr_block == ActiveReadarrBlock::AddRootFolderTagsInput);
match active_readarr_block {
ActiveReadarrBlock::AddRootFolderNameInput => name_input_box.show_cursor(f, name_area),
ActiveReadarrBlock::AddRootFolderPathInput => path_input_box.show_cursor(f, path_area),
ActiveReadarrBlock::AddRootFolderTagsInput => tags_input_box.show_cursor(f, tags_area),
_ => (),
}
render_selectable_input_box!(name_input_box, f, name_area);
render_selectable_input_box!(path_input_box, f, path_area);
render_selectable_input_box!(tags_input_box, f, tags_area);
}
let save_button = Button::default()
.title("Save")
.selected(yes_no_value && highlights.confirm);
let cancel_button = Button::default()
.title("Cancel")
.selected(!yes_no_value && highlights.confirm);
f.render_widget(monitor_drop_down_button, monitor_area);
f.render_widget(monitor_new_items_drop_down_button, monitor_new_items_area);
f.render_widget(quality_profile_drop_down_button, quality_profile_area);
f.render_widget(metadata_profile_drop_down_button, metadata_profile_area);
f.render_widget(save_button, save_area);
f.render_widget(cancel_button, cancel_area);
}
fn draw_add_root_folder_select_monitor_popup(f: &mut Frame<'_>, app: &mut App<'_>) {
let monitor_list = SelectableList::new(
&mut app
.data
.readarr_data
.add_root_folder_modal
.as_mut()
.expect("add_root_folder_modal must exist in this context")
.monitor_list,
|monitor_type| ListItem::new(monitor_type.to_display_str().to_owned()),
);
let popup = Popup::new(monitor_list).size(Size::Dropdown);
f.render_widget(popup, f.area());
}
fn draw_add_root_folder_select_monitor_new_items_popup(f: &mut Frame<'_>, app: &mut App<'_>) {
let monitor_new_items_list = SelectableList::new(
&mut app
.data
.readarr_data
.add_root_folder_modal
.as_mut()
.expect("add_root_folder_modal must exist in this context")
.monitor_new_items_list,
|monitor_type| ListItem::new(monitor_type.to_display_str().to_owned()),
);
let popup = Popup::new(monitor_new_items_list).size(Size::Dropdown);
f.render_widget(popup, f.area());
}
fn draw_add_root_folder_select_quality_profile_popup(f: &mut Frame<'_>, app: &mut App<'_>) {
let quality_profile_list = SelectableList::new(
&mut app
.data
.readarr_data
.add_root_folder_modal
.as_mut()
.expect("add_root_folder_modal must exist in this context")
.quality_profile_list,
|quality_profile| ListItem::new(quality_profile.clone()),
);
let popup = Popup::new(quality_profile_list).size(Size::Dropdown);
f.render_widget(popup, f.area());
}
fn draw_add_root_folder_select_metadata_profile_popup(f: &mut Frame<'_>, app: &mut App<'_>) {
let metadata_profile_list = SelectableList::new(
&mut app
.data
.readarr_data
.add_root_folder_modal
.as_mut()
.expect("add_root_folder_modal must exist in this context")
.metadata_profile_list,
|metadata_profile| ListItem::new(metadata_profile.clone()),
);
let popup = Popup::new(metadata_profile_list).size(Size::Dropdown);
f.render_widget(popup, f.area());
}
@@ -0,0 +1,231 @@
#[cfg(test)]
mod tests {
use pretty_assertions::assert_eq;
use rstest::rstest;
use strum::IntoEnumIterator;
use crate::models::servarr_data::readarr::readarr_data::{
ADD_ROOT_FOLDER_BLOCKS, ADD_ROOT_FOLDER_SELECTION_BLOCKS, ActiveReadarrBlock,
};
use crate::ui::DrawUi;
use crate::ui::readarr_ui::root_folders::add_root_folder_ui::{
AddRootFolderPromptHighlights, AddRootFolderUi, add_root_folder_prompt_highlights,
};
#[test]
fn test_add_root_folder_ui_accepts() {
ActiveReadarrBlock::iter().for_each(|active_readarr_block| {
if ADD_ROOT_FOLDER_BLOCKS.contains(&active_readarr_block) {
assert!(AddRootFolderUi::accepts(active_readarr_block.into()));
} else {
assert!(!AddRootFolderUi::accepts(active_readarr_block.into()));
}
});
}
#[rstest]
#[case(
ActiveReadarrBlock::AddRootFolderNameInput,
AddRootFolderPromptHighlights {
name: true,
path: false,
monitor: false,
monitor_new_items: false,
quality_profile: false,
metadata_profile: false,
tags: false,
confirm: false,
}
)]
#[case(
ActiveReadarrBlock::AddRootFolderPathInput,
AddRootFolderPromptHighlights {
name: false,
path: true,
monitor: false,
monitor_new_items: false,
quality_profile: false,
metadata_profile: false,
tags: false,
confirm: false,
}
)]
#[case(
ActiveReadarrBlock::AddRootFolderSelectMonitor,
AddRootFolderPromptHighlights {
name: false,
path: false,
monitor: true,
monitor_new_items: false,
quality_profile: false,
metadata_profile: false,
tags: false,
confirm: false,
}
)]
#[case(
ActiveReadarrBlock::AddRootFolderSelectMonitorNewItems,
AddRootFolderPromptHighlights {
name: false,
path: false,
monitor: false,
monitor_new_items: true,
quality_profile: false,
metadata_profile: false,
tags: false,
confirm: false,
}
)]
#[case(
ActiveReadarrBlock::AddRootFolderSelectQualityProfile,
AddRootFolderPromptHighlights {
name: false,
path: false,
monitor: false,
monitor_new_items: false,
quality_profile: true,
metadata_profile: false,
tags: false,
confirm: false,
}
)]
#[case(
ActiveReadarrBlock::AddRootFolderSelectMetadataProfile,
AddRootFolderPromptHighlights {
name: false,
path: false,
monitor: false,
monitor_new_items: false,
quality_profile: false,
metadata_profile: true,
tags: false,
confirm: false,
}
)]
#[case(
ActiveReadarrBlock::AddRootFolderTagsInput,
AddRootFolderPromptHighlights {
name: false,
path: false,
monitor: false,
monitor_new_items: false,
quality_profile: false,
metadata_profile: false,
tags: true,
confirm: false,
}
)]
#[case(
ActiveReadarrBlock::AddRootFolderConfirmPrompt,
AddRootFolderPromptHighlights {
name: false,
path: false,
monitor: false,
monitor_new_items: false,
quality_profile: false,
metadata_profile: false,
tags: false,
confirm: true,
}
)]
fn test_add_root_folder_prompt_highlights(
#[case] selected_block: ActiveReadarrBlock,
#[case] expected_highlights: AddRootFolderPromptHighlights,
) {
let highlights = add_root_folder_prompt_highlights(selected_block);
assert_eq!(highlights, expected_highlights);
}
#[test]
fn test_add_root_folder_prompt_highlights_covers_every_selection_step() {
for step in ADD_ROOT_FOLDER_SELECTION_BLOCKS {
let highlights = add_root_folder_prompt_highlights(step[0]);
assert_ne!(
highlights,
add_root_folder_prompt_highlights(ActiveReadarrBlock::RootFolders)
);
}
}
mod snapshot_tests {
use super::*;
use crate::app::App;
use crate::models::BlockSelectionState;
use crate::ui::ui_test_utils::test_utils::{TerminalSize, render_to_string_with_app};
fn seed_distinct_profile_lists(app: &mut App<'_>) {
let add_root_folder_modal = app
.data
.readarr_data
.add_root_folder_modal
.as_mut()
.expect("add_root_folder_modal must exist in this context");
add_root_folder_modal
.quality_profile_list
.set_items(vec!["eBook".to_owned()]);
add_root_folder_modal
.metadata_profile_list
.set_items(vec!["Author Only".to_owned()]);
}
#[rstest]
fn test_add_root_folder_ui_renders(
#[values(
ActiveReadarrBlock::AddRootFolderPrompt,
ActiveReadarrBlock::AddRootFolderConfirmPrompt,
ActiveReadarrBlock::AddRootFolderNameInput,
ActiveReadarrBlock::AddRootFolderPathInput,
ActiveReadarrBlock::AddRootFolderSelectMonitor,
ActiveReadarrBlock::AddRootFolderSelectMonitorNewItems,
ActiveReadarrBlock::AddRootFolderSelectQualityProfile,
ActiveReadarrBlock::AddRootFolderSelectMetadataProfile,
ActiveReadarrBlock::AddRootFolderTagsInput
)]
active_readarr_block: ActiveReadarrBlock,
) {
let mut app = App::test_default_fully_populated();
app.push_navigation_stack(active_readarr_block.into());
seed_distinct_profile_lists(&mut app);
app.data.readarr_data.selected_block =
BlockSelectionState::new(ADD_ROOT_FOLDER_SELECTION_BLOCKS);
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
AddRootFolderUi::draw(f, app, f.area());
});
insta::assert_snapshot!(format!("add_root_folder_{active_readarr_block}"), output);
}
#[rstest]
#[case(0, ActiveReadarrBlock::AddRootFolderNameInput)]
#[case(1, ActiveReadarrBlock::AddRootFolderPathInput)]
#[case(2, ActiveReadarrBlock::AddRootFolderSelectMonitor)]
#[case(3, ActiveReadarrBlock::AddRootFolderSelectMonitorNewItems)]
#[case(4, ActiveReadarrBlock::AddRootFolderSelectQualityProfile)]
#[case(5, ActiveReadarrBlock::AddRootFolderSelectMetadataProfile)]
#[case(6, ActiveReadarrBlock::AddRootFolderTagsInput)]
#[case(7, ActiveReadarrBlock::AddRootFolderConfirmPrompt)]
fn test_add_root_folder_modal_ui_renders_step(
#[case] step: usize,
#[case] selected_readarr_block: ActiveReadarrBlock,
) {
let mut app = App::test_default_fully_populated();
app.push_navigation_stack(ActiveReadarrBlock::AddRootFolderPrompt.into());
seed_distinct_profile_lists(&mut app);
let mut selected_block = BlockSelectionState::new(ADD_ROOT_FOLDER_SELECTION_BLOCKS);
selected_block.set_index(0, step);
app.data.readarr_data.selected_block = selected_block;
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
AddRootFolderUi::draw(f, app, f.area());
});
insta::assert_snapshot!(
format!("add_root_folder_step_{step}_{selected_readarr_block}"),
output
);
}
}
}
+102
View File
@@ -0,0 +1,102 @@
use add_root_folder_ui::AddRootFolderUi;
use ratatui::Frame;
use ratatui::layout::{Constraint, Rect};
use ratatui::widgets::{Cell, Row};
use crate::app::App;
use crate::models::Route;
use crate::models::servarr_data::readarr::readarr_data::{
ADD_ROOT_FOLDER_BLOCKS, ActiveReadarrBlock, ROOT_FOLDERS_BLOCKS,
};
use crate::models::servarr_models::RootFolder;
use crate::ui::DrawUi;
use crate::ui::styles::ManagarrStyle;
use crate::ui::utils::layout_block_top_border;
use crate::ui::widgets::confirmation_prompt::ConfirmationPrompt;
use crate::ui::widgets::managarr_table::ManagarrTable;
use crate::ui::widgets::popup::{Popup, Size};
use crate::utils::convert_to_gb;
mod add_root_folder_ui;
#[cfg(test)]
#[path = "root_folders_ui_tests.rs"]
mod root_folders_ui_tests;
pub(super) struct RootFoldersUi;
impl DrawUi for RootFoldersUi {
fn accepts(route: Route) -> bool {
if let Route::Readarr(active_readarr_block, _) = route {
return ROOT_FOLDERS_BLOCKS.contains(&active_readarr_block)
|| ADD_ROOT_FOLDER_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_root_folders(f, app, area);
if ADD_ROOT_FOLDER_BLOCKS.contains(&active_readarr_block) {
AddRootFolderUi::draw(f, app, area);
} else if active_readarr_block == ActiveReadarrBlock::DeleteRootFolderPrompt {
let prompt = format!(
"Do you really want to delete this root folder: \n{}?",
app.data.readarr_data.root_folders.current_selection().path
);
let confirmation_prompt = ConfirmationPrompt::new()
.title("Delete Root Folder")
.prompt(&prompt)
.yes_no_value(app.data.readarr_data.prompt_confirm);
f.render_widget(
Popup::new(confirmation_prompt).size(Size::MediumPrompt),
f.area(),
);
}
}
}
}
fn draw_root_folders(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
let root_folders_row_mapping = |root_folders: &RootFolder| {
let RootFolder {
path,
free_space,
unmapped_folders,
..
} = root_folders;
let space: f64 = convert_to_gb(*free_space);
Row::new(vec![
Cell::from(path.to_owned()),
Cell::from(format!("{space:.2} GB")),
Cell::from(
unmapped_folders
.as_ref()
.unwrap_or(&Vec::new())
.len()
.to_string(),
),
])
.primary()
};
let root_folders_table = ManagarrTable::new(
Some(&mut app.data.readarr_data.root_folders),
root_folders_row_mapping,
)
.block(layout_block_top_border())
.loading(app.is_loading)
.headers(["Path", "Free Space", "Unmapped Folders"])
.constraints([
Constraint::Ratio(3, 5),
Constraint::Ratio(1, 5),
Constraint::Ratio(1, 5),
]);
f.render_widget(root_folders_table, area);
}
@@ -0,0 +1,190 @@
#[cfg(test)]
mod tests {
use strum::IntoEnumIterator;
use crate::app::App;
use crate::models::servarr_data::readarr::readarr_data::{
ADD_ROOT_FOLDER_BLOCKS, ActiveReadarrBlock, ROOT_FOLDERS_BLOCKS,
};
use crate::ui::DrawUi;
use crate::ui::readarr_ui::root_folders::RootFoldersUi;
use crate::ui::ui_test_utils::test_utils::render_to_string_with_app;
#[test]
fn test_root_folders_ui_accepts() {
ActiveReadarrBlock::iter().for_each(|active_readarr_block| {
if ROOT_FOLDERS_BLOCKS.contains(&active_readarr_block)
|| ADD_ROOT_FOLDER_BLOCKS.contains(&active_readarr_block)
{
assert!(RootFoldersUi::accepts(active_readarr_block.into()));
} else {
assert!(!RootFoldersUi::accepts(active_readarr_block.into()));
}
});
}
mod snapshot_tests {
use super::*;
use crate::models::BlockSelectionState;
use crate::models::Scrollable;
use crate::models::servarr_data::readarr::readarr_data::ADD_ROOT_FOLDER_SELECTION_BLOCKS;
use crate::models::servarr_models::{RootFolder, UnmappedFolder};
use crate::ui::ui_test_utils::test_utils::TerminalSize;
use rstest::rstest;
fn seed_distinct_root_folders(app: &mut App<'_>) {
app.data.readarr_data.root_folders.set_items(vec![
RootFolder {
id: 1,
path: "/nfs/books".to_owned(),
accessible: true,
free_space: 219902325555200,
unmapped_folders: None,
},
RootFolder {
id: 2,
path: "/nfs/audiobooks".to_owned(),
accessible: false,
free_space: 1099511627776,
unmapped_folders: Some(vec![
UnmappedFolder {
name: "Unsorted Anthologies".to_owned(),
path: "/nfs/audiobooks/unsorted-anthologies".to_owned(),
},
UnmappedFolder {
name: "Pending Imports".to_owned(),
path: "/nfs/audiobooks/pending-imports".to_owned(),
},
UnmappedFolder {
name: "Damaged Rips".to_owned(),
path: "/nfs/audiobooks/damaged-rips".to_owned(),
},
]),
},
]);
}
fn seed_distinct_profile_lists(app: &mut App<'_>) {
let add_root_folder_modal = app
.data
.readarr_data
.add_root_folder_modal
.as_mut()
.expect("add_root_folder_modal must exist in this context");
add_root_folder_modal
.quality_profile_list
.set_items(vec!["eBook".to_owned()]);
add_root_folder_modal
.metadata_profile_list
.set_items(vec!["Author Only".to_owned()]);
}
#[test]
fn test_root_folders_ui_renders_loading() {
let mut app = App::test_default();
app.is_loading = true;
app.push_navigation_stack(ActiveReadarrBlock::RootFolders.into());
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
RootFoldersUi::draw(f, app, f.area());
});
insta::assert_snapshot!(output);
}
#[test]
fn test_root_folders_ui_renders_empty_root_folders() {
let mut app = App::test_default();
app.push_navigation_stack(ActiveReadarrBlock::RootFolders.into());
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
RootFoldersUi::draw(f, app, f.area());
});
insta::assert_snapshot!(output);
}
#[rstest]
fn test_root_folders_ui_renders_root_folders_tab(
#[values(
ActiveReadarrBlock::RootFolders,
ActiveReadarrBlock::DeleteRootFolderPrompt
)]
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| {
RootFoldersUi::draw(f, app, f.area());
});
insta::assert_snapshot!(active_readarr_block.to_string(), output);
}
#[rstest]
fn test_root_folders_ui_renders_distinct_root_folders(
#[values(
ActiveReadarrBlock::RootFolders,
ActiveReadarrBlock::DeleteRootFolderPrompt
)]
active_readarr_block: ActiveReadarrBlock,
) {
let mut app = App::test_default_fully_populated();
seed_distinct_root_folders(&mut app);
app.push_navigation_stack(active_readarr_block.into());
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
RootFoldersUi::draw(f, app, f.area());
});
insta::assert_snapshot!(
format!("distinct_root_folders_{active_readarr_block}"),
output
);
}
#[test]
fn test_root_folders_ui_renders_delete_prompt_for_non_default_selection() {
let mut app = App::test_default_fully_populated();
seed_distinct_root_folders(&mut app);
app.data.readarr_data.root_folders.scroll_down();
app.push_navigation_stack(ActiveReadarrBlock::DeleteRootFolderPrompt.into());
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
RootFoldersUi::draw(f, app, f.area());
});
insta::assert_snapshot!(output);
}
#[rstest]
fn test_root_folders_ui_renders_add_root_folder_popup_over_root_folders_table(
#[values(
ActiveReadarrBlock::AddRootFolderPrompt,
ActiveReadarrBlock::AddRootFolderConfirmPrompt,
ActiveReadarrBlock::AddRootFolderNameInput,
ActiveReadarrBlock::AddRootFolderPathInput,
ActiveReadarrBlock::AddRootFolderSelectMonitor,
ActiveReadarrBlock::AddRootFolderSelectMonitorNewItems,
ActiveReadarrBlock::AddRootFolderSelectQualityProfile,
ActiveReadarrBlock::AddRootFolderSelectMetadataProfile,
ActiveReadarrBlock::AddRootFolderTagsInput
)]
active_readarr_block: ActiveReadarrBlock,
) {
let mut app = App::test_default_fully_populated();
seed_distinct_profile_lists(&mut app);
app.data.readarr_data.selected_block =
BlockSelectionState::new(ADD_ROOT_FOLDER_SELECTION_BLOCKS);
app.push_navigation_stack(ActiveReadarrBlock::AddRootFolderPrompt.into());
app.push_navigation_stack(active_readarr_block.into());
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
RootFoldersUi::draw(f, app, f.area());
});
insta::assert_snapshot!(active_readarr_block.to_string(), output);
}
}
}
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/add_root_folder_ui_tests.rs
expression: output
---
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor New Books: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Quality Profile: │eBook ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Metadata Profile: │Author Only ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Tags: │test │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/add_root_folder_ui_tests.rs
expression: output
---
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor New Books: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Quality Profile: │eBook ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Metadata Profile: │Author Only ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Tags: │test │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/add_root_folder_ui_tests.rs
expression: output
---
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor New Books: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Quality Profile: │eBook ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Metadata Profile: │Author Only ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Tags: │test │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/add_root_folder_ui_tests.rs
expression: output
---
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor New Books: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Quality Profile: │eBook ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Metadata Profile: │Author Only ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Tags: │test │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/add_root_folder_ui_tests.rs
expression: output
---
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╭───────────────────────────────╮──────────────────────────────╯ │
│ │Author Only │──────────────────────────────╮ │
│ │ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ Monito│ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ Qual│ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ Metad│ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ ╰───────────────────────────────╯ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/add_root_folder_ui_tests.rs
expression: output
---
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╭───────────────────────────────╮──────────────────────────────╯ │
│ │All Books │──────────────────────────────╮ │
│ │Future Books │ ▼ │ │
│ │Missing Books │──────────────────────────────╯ │
│ │Existing Books │──────────────────────────────╮ │
│ Monito│First Book │ ▼ │ │
│ │Latest Book │──────────────────────────────╯ │
│ │None │──────────────────────────────╮ │
│ Qual│Unknown │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ Metad│ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ ╰───────────────────────────────╯ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/add_root_folder_ui_tests.rs
expression: output
---
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╭───────────────────────────────╮──────────────────────────────╯ │
│ │All Books │──────────────────────────────╮ │
│ │No New Books │ ▼ │ │
│ │New Books │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ Monito│ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ Qual│ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ Metad│ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ ╰───────────────────────────────╯ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/add_root_folder_ui_tests.rs
expression: output
---
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╭───────────────────────────────╮──────────────────────────────╯ │
│ │eBook │──────────────────────────────╮ │
│ │ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ Monito│ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ Qual│ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ Metad│ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ ╰───────────────────────────────╯ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/add_root_folder_ui_tests.rs
expression: output
---
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor New Books: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Quality Profile: │eBook ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Metadata Profile: │Author Only ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Tags: │test │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/add_root_folder_ui_tests.rs
expression: output
---
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor New Books: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Quality Profile: │eBook ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Metadata Profile: │Author Only ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Tags: │test │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/add_root_folder_ui_tests.rs
expression: output
---
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor New Books: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Quality Profile: │eBook ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Metadata Profile: │Author Only ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Tags: │test │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/add_root_folder_ui_tests.rs
expression: output
---
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor New Books: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Quality Profile: │eBook ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Metadata Profile: │Author Only ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Tags: │test │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/add_root_folder_ui_tests.rs
expression: output
---
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor New Books: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Quality Profile: │eBook ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Metadata Profile: │Author Only ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Tags: │test │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/add_root_folder_ui_tests.rs
expression: output
---
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor New Books: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Quality Profile: │eBook ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Metadata Profile: │Author Only ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Tags: │test │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/add_root_folder_ui_tests.rs
expression: output
---
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor New Books: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Quality Profile: │eBook ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Metadata Profile: │Author Only ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Tags: │test │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/add_root_folder_ui_tests.rs
expression: output
---
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor New Books: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Quality Profile: │eBook ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Metadata Profile: │Author Only ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Tags: │test │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/add_root_folder_ui_tests.rs
expression: output
---
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor New Books: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Quality Profile: │eBook ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Metadata Profile: │Author Only ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Tags: │test │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Path Free Space Unmapped Folders
=> /nfs 204800.00 GB 0
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor New Books: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Quality Profile: │eBook ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Metadata Profile: │Author Only ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Tags: │test │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Path Free Space Unmapped Folders
=> /nfs 204800.00 GB 0
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor New Books: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Quality Profile: │eBook ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Metadata Profile: │Author Only ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Tags: │test │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Path Free Space Unmapped Folders
=> /nfs 204800.00 GB 0
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor New Books: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Quality Profile: │eBook ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Metadata Profile: │Author Only ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Tags: │test │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Path Free Space Unmapped Folders
=> /nfs 204800.00 GB 0
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor New Books: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Quality Profile: │eBook ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Metadata Profile: │Author Only ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Tags: │test │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Path Free Space Unmapped Folders
=> /nfs 204800.00 GB 0
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╭───────────────────────────────╮──────────────────────────────╯ │
│ │Author Only │──────────────────────────────╮ │
│ │ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ Monito│ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ Qual│ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ Metad│ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ ╰───────────────────────────────╯ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Path Free Space Unmapped Folders
=> /nfs 204800.00 GB 0
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╭───────────────────────────────╮──────────────────────────────╯ │
│ │All Books │──────────────────────────────╮ │
│ │Future Books │ ▼ │ │
│ │Missing Books │──────────────────────────────╯ │
│ │Existing Books │──────────────────────────────╮ │
│ Monito│First Book │ ▼ │ │
│ │Latest Book │──────────────────────────────╯ │
│ │None │──────────────────────────────╮ │
│ Qual│Unknown │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ Metad│ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ ╰───────────────────────────────╯ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Path Free Space Unmapped Folders
=> /nfs 204800.00 GB 0
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╭───────────────────────────────╮──────────────────────────────╯ │
│ │All Books │──────────────────────────────╮ │
│ │No New Books │ ▼ │ │
│ │New Books │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ Monito│ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ Qual│ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ Metad│ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ ╰───────────────────────────────╯ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Path Free Space Unmapped Folders
=> /nfs 204800.00 GB 0
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╭───────────────────────────────╮──────────────────────────────╯ │
│ │eBook │──────────────────────────────╮ │
│ │ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ Monito│ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ Qual│ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ Metad│ │ ▼ │ │
│ │ │──────────────────────────────╯ │
│ │ │──────────────────────────────╮ │
│ ╰───────────────────────────────╯ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,48 @@
---
source: src/ui/readarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Path Free Space Unmapped Folders
=> /nfs 204800.00 GB 0
╭─────────────────────────────────────────── Add Root Folder ───────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ ╭─────────────────────────────────────────────────╮ │
│ Name: │Test Root Folder │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Path: │/nfs/books │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Monitor New Books: │All Books ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Quality Profile: │eBook ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Metadata Profile: │Author Only ▼ │ │
│ ╰─────────────────────────────────────────────────╯ │
│ ╭─────────────────────────────────────────────────╮ │
│ Tags: │test │ │
│ ╰─────────────────────────────────────────────────╯ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
││ Save ││ Cancel ││
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,38 @@
---
source: src/ui/readarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Path Free Space Unmapped Folders
=> /nfs 204800.00 GB 0
╭────────────────── Delete Root Folder ───────────────────╮
│ Do you really want to delete this root folder: │
│ /nfs? │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭────────────────────────────╮╭───────────────────────────╮│
││ Yes ││ No ││
│╰────────────────────────────╯╰───────────────────────────╯│
╰───────────────────────────────────────────────────────────╯
@@ -0,0 +1,7 @@
---
source: src/ui/readarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Path Free Space Unmapped Folders
=> /nfs 204800.00 GB 0
@@ -0,0 +1,38 @@
---
source: src/ui/readarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Path Free Space Unmapped Folders
=> /nfs/books 204800.00 GB 0
/nfs/audiobooks 1024.00 GB 3
╭────────────────── Delete Root Folder ───────────────────╮
│ Do you really want to delete this root folder: │
│ /nfs/books? │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭────────────────────────────╮╭───────────────────────────╮│
││ Yes ││ No ││
│╰────────────────────────────╯╰───────────────────────────╯│
╰───────────────────────────────────────────────────────────╯
@@ -0,0 +1,8 @@
---
source: src/ui/readarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Path Free Space Unmapped Folders
=> /nfs/books 204800.00 GB 0
/nfs/audiobooks 1024.00 GB 3
@@ -0,0 +1,38 @@
---
source: src/ui/readarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Path Free Space Unmapped Folders
/nfs/books 204800.00 GB 0
=> /nfs/audiobooks 1024.00 GB 3
╭────────────────── Delete Root Folder ───────────────────╮
│ Do you really want to delete this root folder: │
│ /nfs/audiobooks? │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭────────────────────────────╮╭───────────────────────────╮│
││ Yes ││ No ││
│╰────────────────────────────╯╰───────────────────────────╯│
╰───────────────────────────────────────────────────────────╯
@@ -0,0 +1,5 @@
---
source: src/ui/readarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
@@ -0,0 +1,8 @@
---
source: src/ui/readarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Loading ...
@@ -4,9 +4,9 @@ expression: output
--- ---
╭ Authors ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ ╭ Authors ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Library │ Downloads │ Blocklist │ History │ Root Folders │ Indexers │ System │ │ Library │ Downloads │ Blocklist │ History │ Root Folders │ Indexers │ System │
│ │ │───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────│
│ │ │ Path Free Space Unmapped Folders │
│ │ │=> /nfs 204800.00 GB 0 │
│ │ │ │
│ │ │ │
│ │ │ │