mirror of
https://github.com/block/goose.git
synced 2026-10-19 17:43:18 +00:00
test: preserve empty selections against configured extension defaults
This commit is contained in:
parent
a7a88f0453
commit
f2210b009e
3 changed files with 69 additions and 2 deletions
|
|
@ -2925,7 +2925,9 @@ extensions:
|
|||
|
||||
#[test]
|
||||
fn empty_recipe_extensions_do_not_override_explicit_empty_extensions() {
|
||||
let (config, _c, _s) = config_with_yaml("");
|
||||
let (config, _c, _s) = config_with_yaml(
|
||||
"extensions:\n developer:\n enabled: true\n type: builtin\n name: developer\n",
|
||||
);
|
||||
let project_root = tempfile::tempdir().unwrap();
|
||||
let extensions = initial_session_extensions(
|
||||
&config,
|
||||
|
|
@ -2937,6 +2939,16 @@ extensions:
|
|||
)
|
||||
.unwrap();
|
||||
assert!(extensions.is_empty());
|
||||
let defaults = initial_session_extensions(
|
||||
&config,
|
||||
&default_builtin("developer"),
|
||||
project_root.path(),
|
||||
vec![],
|
||||
None,
|
||||
Some(&[]),
|
||||
)
|
||||
.unwrap();
|
||||
assert!(has_developer(&defaults));
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
|||
|
|
@ -204,6 +204,17 @@ mod tests {
|
|||
expected: Option<Vec<ExtensionConfig>>,
|
||||
) {
|
||||
let config = test_config();
|
||||
config
|
||||
.set_param(
|
||||
"extensions",
|
||||
json!({"developer": {"enabled": true, "type": "builtin", "name": "developer", "description": "dev"}}),
|
||||
)
|
||||
.unwrap();
|
||||
assert!(
|
||||
crate::config::extensions::get_enabled_extensions_with_config(&config)
|
||||
.iter()
|
||||
.any(|extension| extension.name() == "developer"),
|
||||
);
|
||||
let expected = expected.unwrap_or_else(|| {
|
||||
crate::config::extensions::get_enabled_extensions_with_config(&config)
|
||||
});
|
||||
|
|
@ -213,6 +224,47 @@ mod tests {
|
|||
);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn persisted_empty_extensions_override_configured_defaults() {
|
||||
let config = test_config();
|
||||
config
|
||||
.set_param(
|
||||
"extensions",
|
||||
json!({"developer": {"enabled": true, "type": "builtin", "name": "developer", "description": "dev"}}),
|
||||
)
|
||||
.unwrap();
|
||||
let defaults = crate::config::extensions::get_enabled_extensions_with_config(&config);
|
||||
assert!(defaults
|
||||
.iter()
|
||||
.any(|extension| extension.name() == "developer"));
|
||||
let directory = tempfile::tempdir().unwrap();
|
||||
let manager = SessionManager::new(directory.path().to_path_buf());
|
||||
let session = manager
|
||||
.create_session(
|
||||
directory.path().to_path_buf(),
|
||||
"extension selection".to_string(),
|
||||
crate::session::SessionType::User,
|
||||
crate::config::GooseMode::default(),
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
assert_eq!(
|
||||
EnabledExtensionsState::for_session(&manager, &session.id, &config).await,
|
||||
defaults,
|
||||
);
|
||||
manager
|
||||
.update(&session.id)
|
||||
.extension_data(extension_data_with(vec![]))
|
||||
.apply()
|
||||
.await
|
||||
.unwrap();
|
||||
assert!(
|
||||
EnabledExtensionsState::for_session(&manager, &session.id, &config)
|
||||
.await
|
||||
.is_empty()
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_extension_data_basic_operations() {
|
||||
let mut extension_data = ExtensionData::new();
|
||||
|
|
|
|||
|
|
@ -47,7 +47,10 @@ vi.mock('../acp/capabilities', () => ({
|
|||
getAcpFeatureCapabilities: vi.fn(),
|
||||
}));
|
||||
|
||||
const testRecipe = vi.hoisted(() => ({ title: 'Test recipe', description: 'Recipe used in tests' }));
|
||||
const testRecipe = vi.hoisted(() => ({
|
||||
title: 'Test recipe',
|
||||
description: 'Recipe used in tests',
|
||||
}));
|
||||
|
||||
const testSession: Session = {
|
||||
id: 'session-1',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue