#![cfg(all(feature = "services-async", feature = "access-token", not(feature = "services-tokio")))]
use livekit_api::services::room::CreateRoomOptions;
use livekit_api::services::LiveKitApi;
fn base_url() -> String {
std::env::var("LK_TEST_SERVER_URL").unwrap_or_else(|_| "http://127.0.0.1:9999".to_owned())
}
fn server_up(base: &str) -> bool {
let authority = base.split("://").nth(1).unwrap_or(base).trim_end_matches('/');
std::net::TcpStream::connect(authority).is_ok()
}
#[test]
fn services_async_smoke() {
let base = base_url();
if !server_up(&base) {
eprintln!("skipping services-async smoke: mock test server not reachable at {base}");
return;
}
futures::executor::block_on(async {
let api = LiveKitApi::with_api_key(&base, "devkey", "secret");
let room = api
.room()
.create_room(
"async-smoke-room",
CreateRoomOptions { metadata: "{}".to_owned(), ..Default::default() },
)
.await
.expect("create_room");
assert_eq!(room.name, "async-smoke-room");
api.room().list_rooms(vec!["async-smoke-room".to_owned()]).await.expect("list_rooms");
api.sip()
.create_sip_inbound_trunk(
"inbound".to_owned(),
vec!["+15105550100".to_owned()],
Default::default(),
)
.await
.expect("create_sip_inbound_trunk");
api.egress().list_egress(Default::default()).await.expect("list_egress");
api.room().delete_room("async-smoke-room").await.expect("delete_room");
});
}