Skip to content
Snippets Groups Projects
Commit 733a4250 authored by Ashley's avatar Ashley Committed by GitHub
Browse files

Fix the browser tests by not relying on Flaming Fir (#5728)


* Fix the browser tests

* Mistyping

* Fix warnings

Co-authored-by: default avatarPierre Krieger <pierre.krieger1708@gmail.com>
parent 4e7e65ff
No related merge requests found
......@@ -32,14 +32,9 @@ use wasm_bindgen_futures::JsFuture;
use wasm_bindgen::JsValue;
use jsonrpc_core::types::{MethodCall, Success, Version, Params, Id};
use serde::de::DeserializeOwned;
use futures_timer::Delay;
use std::time::Duration;
use futures::FutureExt;
wasm_bindgen_test_configure!(run_in_browser);
const CHAIN_SPEC: &str = include_str!("../../cli/res/flaming-fir.json");
fn rpc_call(method: &str) -> String {
serde_json::to_string(&MethodCall {
jsonrpc: Some(Version::V2),
......@@ -59,26 +54,16 @@ fn deserialize_rpc_result<T: DeserializeOwned>(js_value: JsValue) -> T {
#[wasm_bindgen_test]
async fn runs() {
let mut client = node_cli::start_client(CHAIN_SPEC.into(), "info".into())
let mut client = node_cli::start_client(None, "info".into())
.await
.unwrap();
let mut test_timeout = Delay::new(Duration::from_secs(45));
loop {
// Check that timeout hasn't expired.
assert!((&mut test_timeout).now_or_never().is_none(), "Test timed out.");
// Let the node do a bit of work.
Delay::new(Duration::from_secs(5)).await;
let state: sc_rpc_api::system::Health = deserialize_rpc_result(
JsFuture::from(client.rpc_send(&rpc_call("system_health")))
.await
.unwrap()
);
if state.should_have_peers && state.peers > 0 && state.is_syncing {
break;
}
}
// Check that the node handles rpc calls.
// TODO: Re-add the code that checks if the node is syncing.
let chain_name: String = deserialize_rpc_result(
JsFuture::from(client.rpc_send(&rpc_call("system_chain")))
.await
.unwrap()
);
assert_eq!(chain_name, "Development");
}
......@@ -25,17 +25,20 @@ use std::str::FromStr;
/// Starts the client.
#[wasm_bindgen]
pub async fn start_client(chain_spec: String, log_level: String) -> Result<Client, JsValue> {
pub async fn start_client(chain_spec: Option<String>, log_level: String) -> Result<Client, JsValue> {
start_inner(chain_spec, log_level)
.await
.map_err(|err| JsValue::from_str(&err.to_string()))
}
async fn start_inner(chain_spec: String, log_level: String) -> Result<Client, Box<dyn std::error::Error>> {
async fn start_inner(chain_spec: Option<String>, log_level: String) -> Result<Client, Box<dyn std::error::Error>> {
set_console_error_panic_hook();
init_console_log(log::Level::from_str(&log_level)?)?;
let chain_spec = ChainSpec::from_json_bytes(chain_spec.as_bytes().to_vec())
.map_err(|e| format!("{:?}", e))?;
let chain_spec = match chain_spec {
Some(chain_spec) => ChainSpec::from_json_bytes(chain_spec.as_bytes().to_vec())
.map_err(|e| format!("{:?}", e))?,
None => crate::chain_spec::development_config(),
};
let config = browser_configuration(chain_spec).await?;
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment