From 41c02c539fe617dc9b2b1ce89f39fdff83128392 Mon Sep 17 00:00:00 2001 From: zhom <2717306+zhom@users.noreply.github.com> Date: Wed, 13 Aug 2025 09:38:09 +0400 Subject: [PATCH] refactor allow overriding groups data dir --- src-tauri/src/group_manager.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src-tauri/src/group_manager.rs b/src-tauri/src/group_manager.rs index 62a758e..f2d9c91 100644 --- a/src-tauri/src/group_manager.rs +++ b/src-tauri/src/group_manager.rs @@ -38,6 +38,13 @@ impl GroupManager { } } + pub fn with_data_dir_override>(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 { if let Some(dir) = &self.data_dir_override { let mut override_path = dir.clone(); @@ -206,11 +213,9 @@ mod tests { // Set up a temporary home directory for testing 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"); - env::set_var("DONUTBROWSER_DATA_DIR", &data_override); - - let manager = GroupManager::new(); + let manager = GroupManager::with_data_dir_override(&data_override); (manager, temp_dir) }