summaryrefslogtreecommitdiff
path: root/src/integration/tests.rs
diff options
context:
space:
mode:
authorJJ Liebig <jonathan.liebig@gmail.com>2026-09-13 19:58:43 +0400
committerGitHub <noreply@github.com>2026-09-13 17:58:43 +0200
commit981fe83ca2e23474255f4cacc4da2814f9de0744 (patch)
treea04726f5bf4449a6d1c9b9b331e4d8a6bedb7d35 /src/integration/tests.rs
parentcb06df63312eee11006eead7153db061fd02820d (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.rs77
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();