mirror of
https://github.com/zhom/donutbrowser.git
synced 2026-09-23 18:00:44 +02:00
refactor allow overriding groups data dir
This commit is contained in:
@@ -38,6 +38,13 @@ impl GroupManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn with_data_dir_override<P: Into<PathBuf>>(override_dir: P) -> Self {
|
||||||
|
Self {
|
||||||
|
base_dirs: BaseDirs::new().expect("Failed to get base directories"),
|
||||||
|
data_dir_override: Some(override_dir.into()),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn get_groups_file_path(&self) -> PathBuf {
|
fn get_groups_file_path(&self) -> PathBuf {
|
||||||
if let Some(dir) = &self.data_dir_override {
|
if let Some(dir) = &self.data_dir_override {
|
||||||
let mut override_path = dir.clone();
|
let mut override_path = dir.clone();
|
||||||
@@ -206,11 +213,9 @@ mod tests {
|
|||||||
// Set up a temporary home directory for testing
|
// Set up a temporary home directory for testing
|
||||||
env::set_var("HOME", temp_dir.path());
|
env::set_var("HOME", temp_dir.path());
|
||||||
|
|
||||||
// Ensure tests do not conflict by isolating data directory per test instance
|
// Use per-test isolated data directory without relying on global env vars
|
||||||
let data_override = temp_dir.path().join("donutbrowser_test_data");
|
let data_override = temp_dir.path().join("donutbrowser_test_data");
|
||||||
env::set_var("DONUTBROWSER_DATA_DIR", &data_override);
|
let manager = GroupManager::with_data_dir_override(&data_override);
|
||||||
|
|
||||||
let manager = GroupManager::new();
|
|
||||||
(manager, temp_dir)
|
(manager, temp_dir)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user