From fc6311acb734923651713cf0e6a4539f7e3b3625 Mon Sep 17 00:00:00 2001 From: Alex Hancock Date: Thu, 20 Aug 2026 14:59:39 +0000 Subject: [PATCH] test(plugins): isolate GOOSE_PATH_ROOT in discovery tests (#11407) --- crates/goose/src/plugins/discovery.rs | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/crates/goose/src/plugins/discovery.rs b/crates/goose/src/plugins/discovery.rs index 90b89e4bf..ee4402f26 100644 --- a/crates/goose/src/plugins/discovery.rs +++ b/crates/goose/src/plugins/discovery.rs @@ -254,9 +254,14 @@ mod tests { Config::new(dir.join("config.yaml"), "goose-discovery-test").unwrap() } + fn discover_with_config(project: &Path, config: &Config) -> Vec { + let _guard = env_lock::lock_env([("GOOSE_PATH_ROOT", None::<&str>)]); + discover_enabled_plugins_with_config(Some(project), config) + } + fn discover(project: &Path) -> Vec { let cfg_dir = tempfile::tempdir().unwrap(); - discover_enabled_plugins_with_config(Some(project), &test_config(cfg_dir.path())) + discover_with_config(project, &test_config(cfg_dir.path())) } #[test] @@ -345,13 +350,12 @@ mod tests { r#"{"enabledPlugins":["demo"]}"#, ); - let prev = std::env::var("GOOSE_PATH_ROOT").ok(); - unsafe { std::env::set_var("GOOSE_PATH_ROOT", fake_home.path()) }; - let found = discover(project); - match prev { - Some(v) => unsafe { std::env::set_var("GOOSE_PATH_ROOT", v) }, - None => unsafe { std::env::remove_var("GOOSE_PATH_ROOT") }, - } + let cfg_dir = tempfile::tempdir().unwrap(); + let found = { + let _guard = + env_lock::lock_env([("GOOSE_PATH_ROOT", Some(fake_home.path().to_str().unwrap()))]); + discover_enabled_plugins_with_config(Some(project), &test_config(cfg_dir.path())) + }; assert!( found.iter().any(|p| p.name == "demo"), @@ -369,7 +373,7 @@ mod tests { let cfg_dir = tempfile::tempdir().unwrap(); let config = test_config(cfg_dir.path()); - let found = discover_enabled_plugins_with_config(Some(project), &config); + let found = discover_with_config(project, &config); assert!(found.iter().any(|p| p.name == "demo")); let entries: HashMap = @@ -403,7 +407,7 @@ mod tests { let entries = HashMap::from([(key, PluginConfigEntry { enabled: false })]); config.set_param(PLUGINS_CONFIG_KEY, entries).unwrap(); - let found = discover_enabled_plugins_with_config(Some(project), &config); + let found = discover_with_config(project, &config); assert!(found.iter().all(|p| p.name != "demo")); } @@ -428,7 +432,7 @@ mod tests { ) .unwrap(); - let found = discover_enabled_plugins_with_config(Some(project), &config); + let found = discover_with_config(project, &config); assert!(found.iter().any(|p| p.name == "demo")); let entries: HashMap =