test(xy): auto-start + stop/start lifecycle
This commit is contained in:
@@ -0,0 +1,31 @@
|
|||||||
|
mod common;
|
||||||
|
use common::*;
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn auto_starts_on_boot_then_stop_and_start() {
|
||||||
|
let xy = xy_bin();
|
||||||
|
let sleeper = sleep_server_bin();
|
||||||
|
let mut h = Harness::new();
|
||||||
|
h.write_server("alpha", sleeper.to_str().unwrap(), 19_001, "always");
|
||||||
|
h.start_daemon(&xy).await;
|
||||||
|
|
||||||
|
let mut last_stdout = String::new();
|
||||||
|
for _ in 0..40 {
|
||||||
|
let (_c, out, _e) = h.run_cli(&xy, &["list"]).await;
|
||||||
|
last_stdout = out;
|
||||||
|
if last_stdout.contains("alpha") && last_stdout.contains("running") {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
tokio::time::sleep(std::time::Duration::from_millis(100)).await;
|
||||||
|
}
|
||||||
|
assert!(last_stdout.contains("alpha"), "stdout: {last_stdout}");
|
||||||
|
assert!(last_stdout.contains("running"), "stdout: {last_stdout}");
|
||||||
|
|
||||||
|
let (code, out, _e) = h.run_cli(&xy, &["stop", "alpha"]).await;
|
||||||
|
assert_eq!(code, 0);
|
||||||
|
assert!(out.contains("stopped: alpha"), "stdout: {out}");
|
||||||
|
|
||||||
|
let (code, out, _e) = h.run_cli(&xy, &["start", "alpha"]).await;
|
||||||
|
assert_eq!(code, 0);
|
||||||
|
assert!(out.contains("started: alpha"), "stdout: {out}");
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user