use motorcortex_rust::core::Request;
use motorcortex_rust::{ConnectionOptions, StatusCode};
use crate::{CERT_PATH, URL_REQ};
#[tokio::test]
async fn test_async_create_and_remove_group() {
let req = Request::new();
let opts = ConnectionOptions::new(CERT_PATH.to_string(), 5000, 5000);
req.connect(URL_REQ, opts).await.expect("connect");
let group = req
.create_group(
["root/Control/dummyBoolVec", "root/Control/dummyBool"],
"async-test",
1000,
)
.await
.expect("create_group");
assert_eq!(group.status, StatusCode::Ok as i32);
assert!(group.id != 0, "server should assign a non-zero group id");
assert_eq!(group.alias, "async-test");
let status = req.remove_group("async-test").await.expect("remove_group");
assert_eq!(status, StatusCode::Ok);
req.disconnect().await.expect("disconnect");
}
#[tokio::test]
async fn test_async_remove_nonexistent_group_surfaces_status_code() {
let req = Request::new();
let opts = ConnectionOptions::new(CERT_PATH.to_string(), 5000, 5000);
req.connect(URL_REQ, opts).await.expect("connect");
let status = req
.remove_group("definitely-not-a-real-async-group")
.await
.expect("RPC itself must succeed; server reports via status");
assert_ne!(
status,
StatusCode::Ok,
"server should not report Ok for a group it never created",
);
req.disconnect().await.expect("disconnect");
}