fix tests

This commit is contained in:
Cole Miller 2025-07-31 12:46:33 -04:00
parent ca458cc529
commit a9a23251b7
6 changed files with 21 additions and 14 deletions

1
Cargo.lock generated
View file

@ -11475,6 +11475,7 @@ name = "paths"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"dirs 4.0.0", "dirs 4.0.0",
"ignore",
"util", "util",
"workspace-hack", "workspace-hack",
] ]

View file

@ -13,5 +13,6 @@ path = "src/paths.rs"
[dependencies] [dependencies]
dirs.workspace = true dirs.workspace = true
ignore.workspace = true
util.workspace = true util.workspace = true
workspace-hack.workspace = true workspace-hack.workspace = true

View file

@ -507,3 +507,16 @@ fn add_vscode_user_data_paths(paths: &mut Vec<PathBuf>, product_name: &str) {
); );
} }
} }
#[cfg(any(test, feature = "test-support"))]
pub fn global_gitignore_path() -> Option<PathBuf> {
Some(Path::new(util::path!("/home/zed/.config/git/ignore")).into())
}
#[cfg(not(any(test, feature = "test-support")))]
pub fn global_gitignore_path() -> Option<PathBuf> {
static GLOBAL_GITIGNORE_PATH: OnceLock<Option<PathBuf>> = OnceLock::new();
GLOBAL_GITIGNORE_PATH
.get_or_init(|| ::ignore::gitignore::gitconfig_excludes_path())
.clone()
}

View file

@ -29,7 +29,7 @@ use lsp::{
WillRenameFiles, notification::DidRenameFiles, WillRenameFiles, notification::DidRenameFiles,
}; };
use parking_lot::Mutex; use parking_lot::Mutex;
use paths::{config_dir, tasks_file}; use paths::{config_dir, global_gitignore_path, tasks_file};
use postage::stream::Stream as _; use postage::stream::Stream as _;
use pretty_assertions::{assert_eq, assert_matches}; use pretty_assertions::{assert_eq, assert_matches};
use rand::{Rng as _, rngs::StdRng}; use rand::{Rng as _, rngs::StdRng};
@ -1179,7 +1179,9 @@ async fn test_reporting_fs_changes_to_language_servers(cx: &mut gpui::TestAppCon
assert_eq!(fs.read_dir_call_count() - prev_read_dir_count, 5); assert_eq!(fs.read_dir_call_count() - prev_read_dir_count, 5);
let mut new_watched_paths = fs.watched_paths(); let mut new_watched_paths = fs.watched_paths();
new_watched_paths.retain(|path| !path.starts_with(config_dir())); new_watched_paths.retain(|path| {
!path.starts_with(config_dir()) && !path.starts_with(global_gitignore_path().unwrap())
});
assert_eq!( assert_eq!(
&new_watched_paths, &new_watched_paths,
&[ &[

View file

@ -17,7 +17,7 @@ use crate::NumericPrefixWithSuffix;
pub fn home_dir() -> &'static PathBuf { pub fn home_dir() -> &'static PathBuf {
static HOME_DIR: OnceLock<PathBuf> = OnceLock::new(); static HOME_DIR: OnceLock<PathBuf> = OnceLock::new();
HOME_DIR.get_or_init(|| { HOME_DIR.get_or_init(|| {
if cfg!(test) { if cfg!(any(test, feature = "test-support")) {
PathBuf::from("/home/zed") PathBuf::from("/home/zed")
} else { } else {
dirs::home_dir().expect("failed to determine home directory") dirs::home_dir().expect("failed to determine home directory")

View file

@ -3846,7 +3846,7 @@ impl BackgroundScanner {
log::trace!("containing git repository: {containing_git_repository:?}"); log::trace!("containing git repository: {containing_git_repository:?}");
let global_gitignore_path = global_gitignore_path(); let global_gitignore_path = paths::global_gitignore_path();
self.state.lock().snapshot.global_gitignore = self.state.lock().snapshot.global_gitignore =
if let Some(global_gitignore_path) = global_gitignore_path.as_ref() { if let Some(global_gitignore_path) = global_gitignore_path.as_ref() {
build_gitignore(global_gitignore_path, self.fs.as_ref()) build_gitignore(global_gitignore_path, self.fs.as_ref())
@ -5708,13 +5708,3 @@ fn discover_git_paths(dot_git_abs_path: &Arc<Path>, fs: &dyn Fs) -> (Arc<Path>,
(repository_dir_abs_path, common_dir_abs_path) (repository_dir_abs_path, common_dir_abs_path)
} }
#[cfg(test)]
fn global_gitignore_path() -> Option<Arc<Path>> {
Some(Path::new(util::path!("/home/zed/.config/git/ignore")).into())
}
#[cfg(not(test))]
fn global_gitignore_path() -> Option<Arc<Path>> {
::ignore::gitignore::gitconfig_excludes_path().map(Into::into)
}