From 1ebed8d1b2155a8886f86b3e8fa7b100ee573b19 Mon Sep 17 00:00:00 2001 From: Ryan Fowler Date: Fri, 14 Aug 2026 13:44:51 +0000 Subject: [PATCH] test: synchronize skill uninstall PTY output --- tests/cli.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tests/cli.rs b/tests/cli.rs index 8dc8f16e..29df57db 100644 --- a/tests/cli.rs +++ b/tests/cli.rs @@ -608,11 +608,13 @@ fn skill_uninstall_rechecks_modifications_after_confirmation() { let pair = open_pty(24, 100, 0, 0); let capture = start_pty_capture(&pair.master); + drop(pair.master); let mut command = Command::new(fetch_bin()); command.args(["--uninstall-skill", "pi"]); command.env("HOME", &home_value).env("NO_COLOR", ""); configure_pty_child(&mut command, &pair.slave); let mut child = command.spawn().unwrap(); + drop(command); drop(pair.slave); capture.wait_for("Uninstall the fetch skill? [y/N]", Duration::from_secs(5)); @@ -620,12 +622,16 @@ fn skill_uninstall_rechecks_modifications_after_confirmation() { fs::write(&skill, "modified while confirmation was pending\n").unwrap(); let mut input = capture.file.try_clone().unwrap(); input.write_all(b"y\n").unwrap(); + drop(input); let status = child.wait().unwrap(); + let output = capture.finish(); assert!(!status.success()); assert!(skill.exists(), "modified installation was removed"); - assert!(capture.output().contains("refusing to remove modified")); - capture.close(); + assert!( + output.contains("refusing to remove modified"), + "PTY output did not contain the modification guard error:\n{output}" + ); } #[test]