use motorcortex_rust::core::Request;
use motorcortex_rust::{ConnectionOptions, StatusCode};
use crate::{CERT_PATH, URL_REQ};
#[tokio::test]
async fn test_async_login_logout_cycle() {
let req = Request::new();
let opts = ConnectionOptions::new(CERT_PATH.to_string(), 5000, 5000);
req.connect(URL_REQ, opts).await.expect("connect");
let login_status = req
.login("root", "vectioneer")
.await
.expect("login RPC completes");
assert!(
matches!(login_status, StatusCode::Ok | StatusCode::ReadOnlyMode),
"unexpected login status: {login_status:?}"
);
let logout_status = req.logout().await.expect("logout RPC completes");
assert_eq!(logout_status, StatusCode::Ok);
req.disconnect().await.expect("disconnect");
}