#![cfg(target_arch = "wasm32")]
use bytes::Bytes;
use moq_net::{Broadcast, Time, Track};
use wasm_bindgen_test::*;
#[wasm_bindgen_test]
fn timescale_now_is_sane_and_monotonic() {
let a = Time::now();
let b = Time::now();
assert!(
a.as_millis() > 1_577_836_800_000,
"timestamp before 2020. wall clock not working: {}",
a.as_millis()
);
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(Bytes::from_static(b"hello-wasm")).unwrap();
let frame = sub.read_frame().await.unwrap();
assert_eq!(frame.as_deref(), Some(&b"hello-wasm"[..]), "frame did not round-trip");
}