use crate::error::Result;
use crate::tests::setup_clients;
use crate::types::ClientEvent;
#[tokio::test]
async fn bidirectional_text_flow() -> Result<()> {
let mut pair = setup_clients()?;
let sent = pair.alice.send_text("bob", "hello secure world").await?;
let event = pair.bob.poll_once().await?.expect("message event");
if let ClientEvent::MessageReceived { from, message } = event {
assert_eq!(from, "alice");
assert_eq!(message.payload, b"hello secure world");
assert_eq!(message.id, sent);
} else {
panic!("unexpected event");
}
pair.bob.send_text("alice", "response inbound").await?;
let event = pair.alice.poll_once().await?.expect("message event");
if let ClientEvent::MessageReceived { from, message } = event {
assert_eq!(from, "bob");
assert_eq!(message.payload, b"response inbound");
} else {
panic!("unexpected event");
}
Ok(())
}