test(xy): reload diff

This commit is contained in:
2026-05-25 12:05:58 +02:00
parent 284b6e7402
commit 15791c628b
+37
View File
@@ -0,0 +1,37 @@
mod common;
use common::*;
#[tokio::test]
async fn reload_adds_removes_and_changes() {
let xy = xy_bin();
let sleeper = sleep_server_bin();
let mut h = Harness::new();
h.write_server("a", sleeper.to_str().unwrap(), 19_020, "always");
h.start_daemon(&xy).await;
for _ in 0..40 {
let (_c, out, _e) = h.run_cli(&xy, &["list"]).await;
if out.contains("a") && out.contains("running") {
break;
}
tokio::time::sleep(std::time::Duration::from_millis(100)).await;
}
h.write_server("a", sleeper.to_str().unwrap(), 19_021, "always");
h.write_server("b", sleeper.to_str().unwrap(), 19_022, "always");
let (code, out, _e) = h.run_cli(&xy, &["reload"]).await;
assert_eq!(code, 0);
assert!(out.contains("added:") && out.contains("b"), "stdout: {out}");
assert!(
out.contains("changed:") && out.contains("a"),
"stdout: {out}"
);
std::fs::remove_file(h.config_dir.join("a.kdl")).unwrap();
let (code, out, _e) = h.run_cli(&xy, &["reload"]).await;
assert_eq!(code, 0);
assert!(
out.contains("removed:") && out.contains("a"),
"stdout: {out}"
);
}