use std::time::Duration;
use crate::common::{kill_session, ls, spawn_daemon, wait_for, TestEnv};
#[test]
#[ignore = "requires EZPN_TEST_SOCKET_DIR support in src/main.rs (#62 follow-up commit)"]
fn kill_removes_socket_and_session() {
let env = TestEnv::new();
let daemon = spawn_daemon(&env, "killable");
let socket = daemon.socket.clone();
assert!(
socket.exists(),
"expected socket at {} after spawn",
socket.display()
);
let out = kill_session(&env, "killable");
assert!(
out.status.success(),
"ezpn kill failed: stdout={:?} stderr={:?}",
String::from_utf8_lossy(&out.stdout),
String::from_utf8_lossy(&out.stderr)
);
wait_for(
"socket file removed after kill",
Duration::from_secs(5),
|| if !socket.exists() { Some(()) } else { None },
)
.expect("socket was not cleaned up after kill");
let listing = ls(&env);
assert!(
!listing.contains("killable"),
"ezpn ls still reports killed session: {}",
listing
);
drop(daemon);
}