#![cfg(target_arch = "wasm32")]
use std::time::Duration;
use wasm_bindgen_test::*;
wasm_bindgen_test_configure!(run_in_browser);
#[wasm_bindgen_test]
async fn binance_ws_handshake_succeeds() {
use digdigdig3::core::rt::default_runtime;
let rt = default_runtime();
let conn = rt
.connect_ws(
"wss://stream.binance.com:9443/ws/btcusdt@trade",
Duration::from_secs(10),
)
.await
.expect("WebSocket handshake to Binance must succeed from the browser");
drop(conn);
}
#[wasm_bindgen_test]
async fn binance_ws_first_frame() {
use digdigdig3::core::rt::{default_runtime, WsFrame};
let rt = default_runtime();
let mut conn = rt
.connect_ws(
"wss://stream.binance.com:9443/ws/btcusdt@trade",
Duration::from_secs(10),
)
.await
.expect("connect");
let mut got_frame = false;
for _ in 0..50 {
match conn.next_frame().await {
Some(Ok(WsFrame::Text(_))) | Some(Ok(WsFrame::Binary(_))) => {
got_frame = true;
break;
}
Some(Ok(_)) => continue, Some(Err(e)) => panic!("WS error reading frame: {:?}", e),
None => break, }
}
assert!(
got_frame,
"expected at least 1 data frame from Binance BTCUSDT trade stream within 50 polls"
);
}