Files
pezkuwi-subxt/testing/wasm-rpc-tests/tests/wasm.rs
T
James Wilson 21b3f52191 Metadata V16: Be more dynamic over which hasher is used. (#1974)
* Use DynamicHasher256 to support Blake2 or Keccack depending on chain

* remove Config::Hash associated type, replace with HashFor<Config> alias

* Fix doc links

* fix wasm tests

* Don't strip system pallet associated types. check System.Hashing, not Hash. Rename BlockHash trait to Hash

* Tweak comment

* fmt

* fix merge

* Fix typo
2025-04-23 10:12:48 +01:00

61 lines
2.1 KiB
Rust

#![cfg(target_arch = "wasm32")]
use subxt::config::SubstrateConfig;
use subxt::backend::rpc::reconnecting_rpc_client::RpcClient as ReconnectingRpcClient;
use wasm_bindgen_test::*;
wasm_bindgen_test::wasm_bindgen_test_configure!(run_in_browser);
// Run the tests by calling:
//
// ```text
// wasm-pack test --firefox --headless`
// ```
//
// You'll need to have a substrate node running:
//
// ```bash
// ./substrate-node --dev --node-key 0000000000000000000000000000000000000000000000000000000000000001 --listen-addr /ip4/0.0.0.0/tcp/30333/ws
// ```
//
// Use the following to enable logs:
// ```
// console_error_panic_hook::set_once();
// tracing_wasm::set_as_global_default();
// ```
#[wasm_bindgen_test]
async fn wasm_ws_transport_works() {
console_error_panic_hook::set_once();
tracing_wasm::set_as_global_default();
let client = subxt::client::OnlineClient::<SubstrateConfig>::from_url("ws://127.0.0.1:9944")
.await
.unwrap();
let hasher = client.hasher();
let mut stream = client.backend().stream_best_block_headers(hasher).await.unwrap();
assert!(stream.next().await.is_some());
}
#[wasm_bindgen_test]
async fn wasm_ws_chainhead_works() {
let rpc = subxt::backend::rpc::RpcClient::from_url("ws://127.0.0.1:9944").await.unwrap();
let backend = subxt::backend::chain_head::ChainHeadBackendBuilder::new().build_with_background_driver(rpc);
let client = subxt::client::OnlineClient::<SubstrateConfig>::from_backend(std::sync::Arc::new(backend)).await.unwrap();
let hasher = client.hasher();
let mut stream = client.backend().stream_best_block_headers(hasher).await.unwrap();
assert!(stream.next().await.is_some());
}
#[wasm_bindgen_test]
async fn reconnecting_rpc_client_ws_transport_works() {
let rpc = ReconnectingRpcClient::builder().build("ws://127.0.0.1:9944".to_string()).await.unwrap();
let client = subxt::client::OnlineClient::<SubstrateConfig>::from_rpc_client(rpc.clone()).await.unwrap();
let hasher = client.hasher();
let mut stream = client.backend().stream_best_block_headers(hasher).await.unwrap();
assert!(stream.next().await.is_some());
}