mod support;
use serde_json::json;
use support::ipc::{TestIpcClient, TestServer, expect_success};
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
async fn daemon_stop_cancels_shutdown_token() {
let server = TestServer::new().await;
let shutdown = server.shutdown.clone();
let mut client = TestIpcClient::connect(&server.path).await;
client.hello(1).await;
let resp = client.request("daemon/stop", json!({})).await;
let result = expect_success(&resp);
assert_eq!(result["result"]["scheduled"], json!(true));
assert!(shutdown.is_cancelled(), "stop must flip the shutdown token");
drop(client);
server.stop().await;
}
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
async fn daemon_stop_responds_before_drain() {
let server = TestServer::new().await;
let path = server.path.clone();
let mut client = TestIpcClient::connect(&path).await;
client.hello(1).await;
let resp = client.request("daemon/stop", json!({})).await;
let _ = expect_success(&resp);
drop(client);
server.stop().await;
}