use wasm_bindgen_test::*; use sdk_client::scan::WasmScanner; wasm_bindgen_test_configure!(run_in_browser); #[wasm_bindgen_test] async fn test_scanner_creation() { let scanner = WasmScanner::new(); assert!(!scanner.is_scanning()); } #[wasm_bindgen_test] async fn test_scanner_basic_scan() { let scanner = WasmScanner::new(); // Create an empty processes array let processes = serde_wasm_bindgen::to_value(&Vec::::new()).unwrap(); let result = scanner.scan_blocks(10, processes).await; assert!(result.is_ok()); let scan_result = result.unwrap(); let scanned_blocks = js_sys::Reflect::get(&scan_result, &"scannedBlocks".into()).unwrap(); let scanned_blocks: u32 = scanned_blocks.as_f64().unwrap() as u32; assert_eq!(scanned_blocks, 10); } #[wasm_bindgen_test] async fn test_scanner_stop_functionality() { let scanner = WasmScanner::new(); // Start scanning let processes = serde_wasm_bindgen::to_value(&Vec::::new()).unwrap(); let scan_future = scanner.scan_blocks(100, processes); // Stop scanning immediately scanner.stop_scanning(); // The scan should complete quickly since we stopped it let result = scan_future.await; assert!(result.is_ok()); }