test: Updated Rust edition to 2024 and refactored network module tests to be more idiomatic

This commit is contained in:
2025-12-03 14:49:27 -07:00
parent c4e8d64710
commit ad58912baf
257 changed files with 4033 additions and 4380 deletions
+2 -2
View File
@@ -1,12 +1,12 @@
use std::fmt::{Debug, Display, Formatter};
use std::sync::atomic::{AtomicUsize, Ordering};
use crate::app::context_clues::ContextClue;
use crate::app::ServarrConfig;
use crate::app::context_clues::ContextClue;
use crate::models::servarr_data::radarr::radarr_data::ActiveRadarrBlock;
use radarr_models::RadarrSerdeable;
use regex::Regex;
use serde::{de, Deserialize, Deserializer, Serialize, Serializer};
use serde::{Deserialize, Deserializer, Serialize, Serializer, de};
use serde_json::Number;
use servarr_data::sonarr::sonarr_data::ActiveSonarrBlock;
use sonarr_models::SonarrSerdeable;
+3 -3
View File
@@ -3,20 +3,20 @@ mod tests {
use std::sync::atomic::AtomicUsize;
use std::sync::atomic::Ordering;
use crate::app::ServarrConfig;
use crate::app::context_clues::ContextClue;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
use crate::app::ServarrConfig;
use crate::models::from_f64;
use crate::models::servarr_data::radarr::radarr_data::ActiveRadarrBlock;
use crate::models::{from_i64, strip_non_search_characters};
use crate::models::{
BlockSelectionState, HorizontallyScrollableText, Scrollable, ScrollableText, TabRoute, TabState,
};
use crate::models::{from_i64, strip_non_search_characters};
use pretty_assertions::{assert_eq, assert_str_eq};
use serde::de::IntoDeserializer;
use serde::de::value::Error as ValueError;
use serde::de::value::F64Deserializer;
use serde::de::value::I64Deserializer;
use serde::de::IntoDeserializer;
use serde_json::to_string;
const BLOCKS: &[&[i32]] = &[&[11, 12], &[21, 22], &[31, 32]];
+1 -1
View File
@@ -10,11 +10,11 @@ use serde::{Deserialize, Serialize};
use serde_json::{Number, Value};
use strum_macros::{Display, EnumIter};
use super::Serdeable;
use super::servarr_models::{
DiskSpace, HostConfig, Indexer, Language, LogResponse, QualityProfile, QualityWrapper,
QueueEvent, RootFolder, SecurityConfig, Tag, Update,
};
use super::Serdeable;
#[cfg(test)]
#[path = "radarr_models_tests.rs"]
+1 -1
View File
@@ -4,6 +4,7 @@ mod tests {
use serde_json::json;
use crate::models::{
Serdeable,
radarr_models::{
AddMovieSearchResult, BlocklistItem, BlocklistResponse, Collection, Credit, DiskSpace,
DownloadRecord, DownloadsResponse, Indexer, IndexerSettings, IndexerTestResult,
@@ -11,7 +12,6 @@ mod tests {
RadarrSerdeable, RadarrTask, RadarrTaskName, SystemStatus, Tag, Update,
},
servarr_models::{HostConfig, Log, LogResponse, QueueEvent, RootFolder, SecurityConfig},
Serdeable,
};
#[test]
@@ -4,8 +4,8 @@ mod test {
use crate::models::servarr_data::radarr::modals::{
AddMovieModal, EditCollectionModal, EditIndexerModal, EditMovieModal,
};
use crate::models::servarr_data::radarr::radarr_data::radarr_test_utils::utils::create_test_radarr_data;
use crate::models::servarr_data::radarr::radarr_data::RadarrData;
use crate::models::servarr_data::radarr::radarr_data::radarr_test_utils::utils::create_test_radarr_data;
use crate::models::servarr_models::{Indexer, IndexerField, RootFolder};
use crate::models::stateful_table::StatefulTable;
use bimap::BiMap;
@@ -13,9 +13,9 @@ mod tests {
MOVIE_DETAILS_CONTEXT_CLUES,
};
use crate::models::Route;
use crate::models::servarr_data::radarr::radarr_data::radarr_test_utils::utils;
use crate::models::servarr_data::radarr::radarr_data::{ActiveRadarrBlock, RadarrData};
use crate::models::Route;
use crate::assert_movie_info_tabs_reset;
use crate::models::BlockSelectionState;
@@ -192,9 +192,11 @@ mod tests {
radarr_data.movie_info_tabs.tabs[0].route,
ActiveRadarrBlock::MovieDetails.into()
);
assert!(radarr_data.movie_info_tabs.tabs[0]
.contextual_help
.is_some());
assert!(
radarr_data.movie_info_tabs.tabs[0]
.contextual_help
.is_some()
);
assert_eq!(
radarr_data.movie_info_tabs.tabs[0].contextual_help.unwrap(),
&MOVIE_DETAILS_CONTEXT_CLUES
@@ -206,9 +208,11 @@ mod tests {
radarr_data.movie_info_tabs.tabs[1].route,
ActiveRadarrBlock::MovieHistory.into()
);
assert!(radarr_data.movie_info_tabs.tabs[1]
.contextual_help
.is_some());
assert!(
radarr_data.movie_info_tabs.tabs[1]
.contextual_help
.is_some()
);
assert_eq!(
radarr_data.movie_info_tabs.tabs[1].contextual_help.unwrap(),
&MOVIE_DETAILS_CONTEXT_CLUES
@@ -220,9 +224,11 @@ mod tests {
radarr_data.movie_info_tabs.tabs[2].route,
ActiveRadarrBlock::FileInfo.into()
);
assert!(radarr_data.movie_info_tabs.tabs[2]
.contextual_help
.is_some());
assert!(
radarr_data.movie_info_tabs.tabs[2]
.contextual_help
.is_some()
);
assert_eq!(
radarr_data.movie_info_tabs.tabs[2].contextual_help.unwrap(),
&MOVIE_DETAILS_CONTEXT_CLUES
@@ -234,9 +240,11 @@ mod tests {
radarr_data.movie_info_tabs.tabs[3].route,
ActiveRadarrBlock::Cast.into()
);
assert!(radarr_data.movie_info_tabs.tabs[3]
.contextual_help
.is_some());
assert!(
radarr_data.movie_info_tabs.tabs[3]
.contextual_help
.is_some()
);
assert_eq!(
radarr_data.movie_info_tabs.tabs[3].contextual_help.unwrap(),
&MOVIE_DETAILS_CONTEXT_CLUES
@@ -248,9 +256,11 @@ mod tests {
radarr_data.movie_info_tabs.tabs[4].route,
ActiveRadarrBlock::Crew.into()
);
assert!(radarr_data.movie_info_tabs.tabs[4]
.contextual_help
.is_some());
assert!(
radarr_data.movie_info_tabs.tabs[4]
.contextual_help
.is_some()
);
assert_eq!(
radarr_data.movie_info_tabs.tabs[4].contextual_help.unwrap(),
&MOVIE_DETAILS_CONTEXT_CLUES
@@ -262,9 +272,11 @@ mod tests {
radarr_data.movie_info_tabs.tabs[5].route,
ActiveRadarrBlock::ManualSearch.into()
);
assert!(radarr_data.movie_info_tabs.tabs[5]
.contextual_help
.is_some());
assert!(
radarr_data.movie_info_tabs.tabs[5]
.contextual_help
.is_some()
);
assert_eq!(
radarr_data.movie_info_tabs.tabs[5].contextual_help.unwrap(),
&MANUAL_MOVIE_SEARCH_CONTEXT_CLUES
@@ -277,12 +289,12 @@ mod tests {
use pretty_assertions::assert_eq;
use crate::models::servarr_data::radarr::radarr_data::{
ActiveRadarrBlock, ADD_MOVIE_BLOCKS, ADD_MOVIE_SELECTION_BLOCKS, BLOCKLIST_BLOCKS,
COLLECTIONS_BLOCKS, COLLECTION_DETAILS_BLOCKS, DELETE_MOVIE_BLOCKS,
ADD_MOVIE_BLOCKS, ADD_MOVIE_SELECTION_BLOCKS, ActiveRadarrBlock, BLOCKLIST_BLOCKS,
COLLECTION_DETAILS_BLOCKS, COLLECTIONS_BLOCKS, DELETE_MOVIE_BLOCKS,
DELETE_MOVIE_SELECTION_BLOCKS, DOWNLOADS_BLOCKS, EDIT_COLLECTION_BLOCKS,
EDIT_COLLECTION_SELECTION_BLOCKS, EDIT_INDEXER_BLOCKS, EDIT_INDEXER_NZB_SELECTION_BLOCKS,
EDIT_INDEXER_TORRENT_SELECTION_BLOCKS, EDIT_MOVIE_BLOCKS, EDIT_MOVIE_SELECTION_BLOCKS,
INDEXERS_BLOCKS, INDEXER_SETTINGS_BLOCKS, INDEXER_SETTINGS_SELECTION_BLOCKS, LIBRARY_BLOCKS,
INDEXER_SETTINGS_BLOCKS, INDEXER_SETTINGS_SELECTION_BLOCKS, INDEXERS_BLOCKS, LIBRARY_BLOCKS,
MOVIE_DETAILS_BLOCKS, ROOT_FOLDERS_BLOCKS, SYSTEM_DETAILS_BLOCKS,
};
@@ -359,8 +371,10 @@ mod tests {
assert!(
EDIT_COLLECTION_BLOCKS.contains(&ActiveRadarrBlock::EditCollectionRootFolderPathInput)
);
assert!(EDIT_COLLECTION_BLOCKS
.contains(&ActiveRadarrBlock::EditCollectionSelectMinimumAvailability));
assert!(
EDIT_COLLECTION_BLOCKS
.contains(&ActiveRadarrBlock::EditCollectionSelectMinimumAvailability)
);
assert!(
EDIT_COLLECTION_BLOCKS.contains(&ActiveRadarrBlock::EditCollectionSelectQualityProfile)
);
@@ -447,18 +461,26 @@ mod tests {
INDEXER_SETTINGS_BLOCKS.contains(&ActiveRadarrBlock::IndexerSettingsAvailabilityDelayInput)
);
assert!(INDEXER_SETTINGS_BLOCKS.contains(&ActiveRadarrBlock::IndexerSettingsConfirmPrompt));
assert!(INDEXER_SETTINGS_BLOCKS.contains(&ActiveRadarrBlock::IndexerSettingsMaximumSizeInput));
assert!(
INDEXER_SETTINGS_BLOCKS.contains(&ActiveRadarrBlock::IndexerSettingsMaximumSizeInput)
);
assert!(INDEXER_SETTINGS_BLOCKS.contains(&ActiveRadarrBlock::IndexerSettingsMinimumAgeInput));
assert!(INDEXER_SETTINGS_BLOCKS.contains(&ActiveRadarrBlock::IndexerSettingsRetentionInput));
assert!(
INDEXER_SETTINGS_BLOCKS.contains(&ActiveRadarrBlock::IndexerSettingsRssSyncIntervalInput)
);
assert!(INDEXER_SETTINGS_BLOCKS
.contains(&ActiveRadarrBlock::IndexerSettingsToggleAllowHardcodedSubs));
assert!(INDEXER_SETTINGS_BLOCKS
.contains(&ActiveRadarrBlock::IndexerSettingsTogglePreferIndexerFlags));
assert!(INDEXER_SETTINGS_BLOCKS
.contains(&ActiveRadarrBlock::IndexerSettingsWhitelistedSubtitleTagsInput));
assert!(
INDEXER_SETTINGS_BLOCKS
.contains(&ActiveRadarrBlock::IndexerSettingsToggleAllowHardcodedSubs)
);
assert!(
INDEXER_SETTINGS_BLOCKS
.contains(&ActiveRadarrBlock::IndexerSettingsTogglePreferIndexerFlags)
);
assert!(
INDEXER_SETTINGS_BLOCKS
.contains(&ActiveRadarrBlock::IndexerSettingsWhitelistedSubtitleTagsInput)
);
}
#[test]
@@ -1,7 +1,7 @@
#[cfg(test)]
mod tests {
use crate::models::servarr_data::ActiveKeybindingBlock;
use crate::models::Route;
use crate::models::servarr_data::ActiveKeybindingBlock;
use pretty_assertions::assert_eq;
#[test]
+1 -1
View File
@@ -9,12 +9,12 @@ use crate::{
MANUAL_SEASON_SEARCH_CONTEXT_CLUES, SEASON_DETAILS_CONTEXT_CLUES, SEASON_HISTORY_CONTEXT_CLUES,
},
models::{
HorizontallyScrollableText, ScrollableText, TabRoute, TabState,
servarr_data::modals::EditIndexerModal,
servarr_models::{Indexer, RootFolder},
sonarr_models::{Episode, Series, SeriesMonitor, SeriesType, SonarrHistoryItem, SonarrRelease},
stateful_list::StatefulList,
stateful_table::StatefulTable,
HorizontallyScrollableText, ScrollableText, TabRoute, TabState,
},
};
+35 -21
View File
@@ -255,9 +255,11 @@ mod tests {
episode_details_modal.episode_details_tabs.tabs[0].route,
ActiveSonarrBlock::EpisodeDetails.into()
);
assert!(episode_details_modal.episode_details_tabs.tabs[0]
.contextual_help
.is_some());
assert!(
episode_details_modal.episode_details_tabs.tabs[0]
.contextual_help
.is_some()
);
assert_eq!(
episode_details_modal.episode_details_tabs.tabs[0]
.contextual_help
@@ -277,9 +279,11 @@ mod tests {
episode_details_modal.episode_details_tabs.tabs[1].route,
ActiveSonarrBlock::EpisodeHistory.into()
);
assert!(episode_details_modal.episode_details_tabs.tabs[1]
.contextual_help
.is_some());
assert!(
episode_details_modal.episode_details_tabs.tabs[1]
.contextual_help
.is_some()
);
assert_eq!(
episode_details_modal.episode_details_tabs.tabs[1]
.contextual_help
@@ -299,9 +303,11 @@ mod tests {
episode_details_modal.episode_details_tabs.tabs[2].route,
ActiveSonarrBlock::EpisodeFile.into()
);
assert!(episode_details_modal.episode_details_tabs.tabs[2]
.contextual_help
.is_some());
assert!(
episode_details_modal.episode_details_tabs.tabs[2]
.contextual_help
.is_some()
);
assert_eq!(
episode_details_modal.episode_details_tabs.tabs[2]
.contextual_help
@@ -321,9 +327,11 @@ mod tests {
episode_details_modal.episode_details_tabs.tabs[3].route,
ActiveSonarrBlock::ManualEpisodeSearch.into()
);
assert!(episode_details_modal.episode_details_tabs.tabs[3]
.contextual_help
.is_some());
assert!(
episode_details_modal.episode_details_tabs.tabs[3]
.contextual_help
.is_some()
);
assert_eq!(
episode_details_modal.episode_details_tabs.tabs[3]
.contextual_help
@@ -356,9 +364,11 @@ mod tests {
season_details_modal.season_details_tabs.tabs[0].route,
ActiveSonarrBlock::SeasonDetails.into()
);
assert!(season_details_modal.season_details_tabs.tabs[0]
.contextual_help
.is_some());
assert!(
season_details_modal.season_details_tabs.tabs[0]
.contextual_help
.is_some()
);
assert_eq!(
season_details_modal.season_details_tabs.tabs[0]
.contextual_help
@@ -378,9 +388,11 @@ mod tests {
season_details_modal.season_details_tabs.tabs[1].route,
ActiveSonarrBlock::SeasonHistory.into()
);
assert!(season_details_modal.season_details_tabs.tabs[1]
.contextual_help
.is_some());
assert!(
season_details_modal.season_details_tabs.tabs[1]
.contextual_help
.is_some()
);
assert_eq!(
season_details_modal.season_details_tabs.tabs[1]
.contextual_help
@@ -400,9 +412,11 @@ mod tests {
season_details_modal.season_details_tabs.tabs[2].route,
ActiveSonarrBlock::ManualSeasonSearch.into()
);
assert!(season_details_modal.season_details_tabs.tabs[2]
.contextual_help
.is_some());
assert!(
season_details_modal.season_details_tabs.tabs[2]
.contextual_help
.is_some()
);
assert_eq!(
season_details_modal.season_details_tabs.tabs[2]
.contextual_help
@@ -14,6 +14,7 @@ use crate::{
},
},
models::{
BlockSelectionState, HorizontallyScrollableText, Route, ScrollableText, TabRoute, TabState,
servarr_data::modals::{EditIndexerModal, IndexerTestResultModalItem},
servarr_models::{DiskSpace, Indexer, QueueEvent, RootFolder},
sonarr_models::{
@@ -22,7 +23,6 @@ use crate::{
},
stateful_list::StatefulList,
stateful_table::StatefulTable,
BlockSelectionState, HorizontallyScrollableText, Route, ScrollableText, TabRoute, TabState,
},
network::sonarr_network::SonarrEvent,
};
@@ -18,8 +18,8 @@ mod tests {
},
},
models::{
servarr_data::sonarr::sonarr_data::{ActiveSonarrBlock, SonarrData},
BlockSelectionState, Route,
servarr_data::sonarr::sonarr_data::{ActiveSonarrBlock, SonarrData},
},
};
@@ -209,9 +209,11 @@ mod tests {
sonarr_data.series_info_tabs.tabs[0].route,
ActiveSonarrBlock::SeriesDetails.into()
);
assert!(sonarr_data.series_info_tabs.tabs[0]
.contextual_help
.is_some());
assert!(
sonarr_data.series_info_tabs.tabs[0]
.contextual_help
.is_some()
);
assert_eq!(
sonarr_data.series_info_tabs.tabs[0]
.contextual_help
@@ -225,9 +227,11 @@ mod tests {
sonarr_data.series_info_tabs.tabs[1].route,
ActiveSonarrBlock::SeriesHistory.into()
);
assert!(sonarr_data.series_info_tabs.tabs[1]
.contextual_help
.is_some());
assert!(
sonarr_data.series_info_tabs.tabs[1]
.contextual_help
.is_some()
);
assert_eq!(
sonarr_data.series_info_tabs.tabs[1]
.contextual_help
@@ -240,11 +244,11 @@ mod tests {
mod active_sonarr_block_tests {
use crate::models::servarr_data::sonarr::sonarr_data::{
ActiveSonarrBlock, ADD_SERIES_BLOCKS, ADD_SERIES_SELECTION_BLOCKS, BLOCKLIST_BLOCKS,
ADD_SERIES_BLOCKS, ADD_SERIES_SELECTION_BLOCKS, ActiveSonarrBlock, BLOCKLIST_BLOCKS,
DELETE_SERIES_BLOCKS, DELETE_SERIES_SELECTION_BLOCKS, DOWNLOADS_BLOCKS, EDIT_INDEXER_BLOCKS,
EDIT_INDEXER_NZB_SELECTION_BLOCKS, EDIT_INDEXER_TORRENT_SELECTION_BLOCKS, EDIT_SERIES_BLOCKS,
EDIT_SERIES_SELECTION_BLOCKS, EPISODE_DETAILS_BLOCKS, HISTORY_BLOCKS, INDEXERS_BLOCKS,
INDEXER_SETTINGS_BLOCKS, INDEXER_SETTINGS_SELECTION_BLOCKS, LIBRARY_BLOCKS,
EDIT_SERIES_SELECTION_BLOCKS, EPISODE_DETAILS_BLOCKS, HISTORY_BLOCKS,
INDEXER_SETTINGS_BLOCKS, INDEXER_SETTINGS_SELECTION_BLOCKS, INDEXERS_BLOCKS, LIBRARY_BLOCKS,
ROOT_FOLDERS_BLOCKS, SEASON_DETAILS_BLOCKS, SERIES_DETAILS_BLOCKS, SYSTEM_DETAILS_BLOCKS,
};
@@ -394,7 +398,9 @@ mod tests {
assert!(DELETE_SERIES_BLOCKS.contains(&ActiveSonarrBlock::DeleteSeriesPrompt));
assert!(DELETE_SERIES_BLOCKS.contains(&ActiveSonarrBlock::DeleteSeriesConfirmPrompt));
assert!(DELETE_SERIES_BLOCKS.contains(&ActiveSonarrBlock::DeleteSeriesToggleDeleteFile));
assert!(DELETE_SERIES_BLOCKS.contains(&ActiveSonarrBlock::DeleteSeriesToggleAddListExclusion));
assert!(
DELETE_SERIES_BLOCKS.contains(&ActiveSonarrBlock::DeleteSeriesToggleAddListExclusion)
);
}
#[test]
@@ -533,7 +539,9 @@ mod tests {
assert_eq!(INDEXER_SETTINGS_BLOCKS.len(), 6);
assert!(INDEXER_SETTINGS_BLOCKS.contains(&ActiveSonarrBlock::AllIndexerSettingsPrompt));
assert!(INDEXER_SETTINGS_BLOCKS.contains(&ActiveSonarrBlock::IndexerSettingsConfirmPrompt));
assert!(INDEXER_SETTINGS_BLOCKS.contains(&ActiveSonarrBlock::IndexerSettingsMaximumSizeInput));
assert!(
INDEXER_SETTINGS_BLOCKS.contains(&ActiveSonarrBlock::IndexerSettingsMaximumSizeInput)
);
assert!(INDEXER_SETTINGS_BLOCKS.contains(&ActiveSonarrBlock::IndexerSettingsMinimumAgeInput));
assert!(INDEXER_SETTINGS_BLOCKS.contains(&ActiveSonarrBlock::IndexerSettingsRetentionInput));
assert!(
@@ -652,8 +660,12 @@ mod tests {
assert!(EPISODE_DETAILS_BLOCKS.contains(&ActiveSonarrBlock::EpisodeFile));
assert!(EPISODE_DETAILS_BLOCKS.contains(&ActiveSonarrBlock::ManualEpisodeSearch));
assert!(EPISODE_DETAILS_BLOCKS.contains(&ActiveSonarrBlock::ManualEpisodeSearchSortPrompt));
assert!(EPISODE_DETAILS_BLOCKS.contains(&ActiveSonarrBlock::ManualEpisodeSearchConfirmPrompt));
assert!(EPISODE_DETAILS_BLOCKS.contains(&ActiveSonarrBlock::AutomaticallySearchEpisodePrompt));
assert!(
EPISODE_DETAILS_BLOCKS.contains(&ActiveSonarrBlock::ManualEpisodeSearchConfirmPrompt)
);
assert!(
EPISODE_DETAILS_BLOCKS.contains(&ActiveSonarrBlock::AutomaticallySearchEpisodePrompt)
);
}
}
}
@@ -3,13 +3,13 @@ pub mod utils {
use crate::models::servarr_models::{Indexer, RootFolder};
use crate::models::sonarr_models::{BlocklistItem, Series};
use crate::models::{
HorizontallyScrollableText, ScrollableText,
servarr_data::sonarr::{
modals::{EpisodeDetailsModal, SeasonDetailsModal},
sonarr_data::SonarrData,
},
sonarr_models::{AddSeriesSearchResult, Episode, Season, SonarrHistoryItem, SonarrRelease},
stateful_table::StatefulTable,
HorizontallyScrollableText, ScrollableText,
};
pub fn create_test_sonarr_data<'a>() -> SonarrData<'a> {
+1 -1
View File
@@ -11,11 +11,11 @@ use strum::EnumIter;
use strum_macros::Display;
use super::{
HorizontallyScrollableText, Serdeable,
servarr_models::{
DiskSpace, HostConfig, Indexer, Language, LogResponse, QualityProfile, QualityWrapper,
QueueEvent, RootFolder, SecurityConfig, Tag, Update,
},
HorizontallyScrollableText, Serdeable,
};
#[cfg(test)]
+1 -1
View File
@@ -4,6 +4,7 @@ mod tests {
use serde_json::json;
use crate::models::{
Serdeable,
servarr_models::{
DiskSpace, HostConfig, Indexer, IndexerTestResult, Language, Log, LogResponse,
QualityProfile, QueueEvent, RootFolder, SecurityConfig, Tag, Update,
@@ -14,7 +15,6 @@ mod tests {
SeriesStatus, SeriesType, SonarrHistoryEventType, SonarrHistoryItem, SonarrRelease,
SonarrSerdeable, SonarrTask, SonarrTaskName, SystemStatus,
},
Serdeable,
};
#[test]
+1 -1
View File
@@ -1,7 +1,7 @@
#[cfg(test)]
mod tests {
use crate::models::stateful_list::StatefulList;
use crate::models::Scrollable;
use crate::models::stateful_list::StatefulList;
use pretty_assertions::{assert_eq, assert_str_eq};
#[test]
+1 -1
View File
@@ -1,6 +1,6 @@
use crate::models::stateful_list::StatefulList;
use crate::models::{
strip_non_search_characters, HorizontallyScrollableText, Paginated, Scrollable,
HorizontallyScrollableText, Paginated, Scrollable, strip_non_search_characters,
};
use ratatui::widgets::TableState;
use std::cmp::Ordering;
+1 -1
View File
@@ -2,8 +2,8 @@
mod tests {
use std::hash::{DefaultHasher, Hash, Hasher};
use crate::models::stateful_tree::StatefulTree;
use crate::models::Scrollable;
use crate::models::stateful_tree::StatefulTree;
use managarr_tree_widget::{Tree, TreeItem, TreeState};
use pretty_assertions::{assert_eq, assert_str_eq};
use ratatui::buffer::Buffer;