#![cfg(target_arch = "wasm32")]
use bytes::Bytes;
use moq_net::{Broadcast, Timestamp, Track};
use wasm_bindgen_test::*;
#[wasm_bindgen_test]
fn timescale_now_is_sane_and_monotonic() {
let a = Timestamp::now();
let b = Timestamp::now();
assert!(!a.is_zero(), "timestamp clock did not advance from its local anchor");
assert!(b >= a, "time went backwards: {} < {}", b.as_millis(), a.as_millis());
}
#[wasm_bindgen_test]
async fn produce_consume_frame_roundtrip() {
let mut broadcast = Broadcast::new().produce();
let mut track = broadcast.create_track(Track::new("stream")).unwrap();
let consumer = broadcast.consume();
let mut sub = consumer.subscribe_track(&Track::new("stream")).unwrap();
track
.write_frame(Timestamp::now(), Bytes::from_static(b"hello-wasm"))
.unwrap();
let frame = sub.read_frame().await.unwrap();
assert_eq!(
frame.as_ref().map(|frame| frame.payload.as_ref()),
Some(&b"hello-wasm"[..]),
"frame did not round-trip"
);
}