use socketeer::{EchoControlMessage, Socketeer, echo_server, get_mock_address};
use tracing_subscriber::fmt::Subscriber;
#[tokio::main]
async fn main() {
let subscriber = Subscriber::builder()
.with_max_level(tracing::Level::TRACE)
.finish();
tracing::subscriber::set_global_default(subscriber).unwrap();
let server_address = get_mock_address(echo_server).await;
let mut socketeer: Socketeer<EchoControlMessage, EchoControlMessage> =
Socketeer::connect(&format!("ws://{server_address}",))
.await
.unwrap();
socketeer
.send(EchoControlMessage::Message("Hello, world!".to_string()))
.await
.unwrap();
let response = socketeer.next_message().await.unwrap();
assert_eq!(
response,
EchoControlMessage::Message("Hello, world!".to_string())
);
socketeer.close_connection().await.unwrap();
}