diff options
| author | JJ Liebig <jonathan.liebig@gmail.com> | 2026-09-13 19:58:43 +0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-13 17:58:43 +0200 |
| commit | 981fe83ca2e23474255f4cacc4da2814f9de0744 (patch) | |
| tree | a04726f5bf4449a6d1c9b9b331e4d8a6bedb7d35 /src/integration/tests.rs | |
| parent | cb06df63312eee11006eead7153db061fd02820d (diff) | |
fix: keep hermes enabled list valid yaml (#4056)
* fix: keep hermes enabled list valid yaml
refs #3839
* fix: preserve hermes inline list quoting and comments
refs #3839
Diffstat (limited to 'src/integration/tests.rs')
| -rw-r--r-- | src/integration/tests.rs | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/integration/tests.rs b/src/integration/tests.rs index 41a4e027..eb310637 100644 --- a/src/integration/tests.rs +++ b/src/integration/tests.rs @@ -2704,6 +2704,59 @@ fn install_hermes_converts_flow_plugin_list_to_block_list() { } #[test] +fn install_hermes_converts_inline_enabled_list_to_block_list() { + let config = update_hermes_enabled_plugin("plugins:\n enabled: [example-plugin]\n", true); + assert_eq!( + config, + "plugins:\n enabled:\n - herdr-agent-state\n - example-plugin\n" + ); +} + +#[test] +fn install_hermes_preserves_quoted_inline_enabled_items() { + let config = + update_hermes_enabled_plugin("plugins:\n enabled: [\"null\", 'foo: bar']\n", true); + assert_eq!( + config, + "plugins:\n enabled:\n - herdr-agent-state\n - \"null\"\n - 'foo: bar'\n" + ); +} + +#[test] +fn install_hermes_preserves_inline_enabled_comment() { + let config = update_hermes_enabled_plugin( + "plugins:\n enabled: [example-plugin] # managed locally\n", + true, + ); + assert_eq!( + config, + "plugins:\n enabled: # managed locally\n - herdr-agent-state\n - example-plugin\n" + ); +} + +#[test] +fn install_hermes_preserves_inline_plugins_comment() { + let config = + update_hermes_enabled_plugin("plugins: [platforms/discord] # managed locally\n", true); + assert_eq!( + config, + "plugins: # managed locally\n - herdr-agent-state\n - platforms/discord\n" + ); +} + +#[test] +fn install_hermes_is_idempotent_for_inline_enabled_list_entry() { + let config = update_hermes_enabled_plugin( + "plugins:\n enabled: [herdr-agent-state, example-plugin]\n", + true, + ); + assert_eq!( + config, + "plugins:\n enabled: [herdr-agent-state, example-plugin]\n" + ); +} + +#[test] fn install_hermes_is_idempotent_for_quoted_flat_plugin_entry() { let _lock = integration_env_lock(); let base = unique_base(); @@ -2825,6 +2878,30 @@ fn uninstall_hermes_removes_flow_plugin_list_entry() { } #[test] +fn uninstall_hermes_removes_inline_enabled_list_entry() { + let config = update_hermes_enabled_plugin( + "plugins:\n enabled: [example-plugin, herdr-agent-state]\n", + false, + ); + assert_eq!(config, "plugins:\n enabled:\n - example-plugin\n"); +} + +#[test] +fn uninstall_hermes_preserves_quoted_inline_enabled_items() { + let config = update_hermes_enabled_plugin( + "plugins:\n enabled: ['foo: bar', herdr-agent-state]\n", + false, + ); + assert_eq!(config, "plugins:\n enabled:\n - 'foo: bar'\n"); +} + +#[test] +fn uninstall_hermes_converts_single_inline_enabled_entry_to_empty_list() { + let config = update_hermes_enabled_plugin("plugins:\n enabled: [herdr-agent-state]\n", false); + assert_eq!(config, "plugins:\n enabled: []\n"); +} + +#[test] fn uninstall_hermes_removes_commented_flat_plugin_entry() { let _lock = integration_env_lock(); let base = unique_base(); |
