add unit tests to run runtime migrations (#5865)

* add unit tests to run runtime migrations

* Update runtime/westend/src/lib.rs

Co-authored-by: Mara Robin B. <mara@broda.me>

* fix

* fmt

* Update runtime/westend/src/lib.rs

Co-authored-by: Mara Robin B. <mara@broda.me>
This commit is contained in:
Kian Paimani
2022-08-11 07:24:11 +01:00
committed by GitHub
parent f1dce2f548
commit 1ad7de583f
7 changed files with 123 additions and 0 deletions
+35
View File
@@ -2308,3 +2308,38 @@ mod multiplier_tests {
}
}
}
#[cfg(all(test, feature = "try-runtime"))]
mod remote_tests {
use super::*;
use frame_try_runtime::runtime_decl_for_TryRuntime::TryRuntime;
use remote_externalities::{
Builder, Mode, OfflineConfig, OnlineConfig, SnapshotConfig, Transport,
};
use std::env::var;
#[tokio::test]
async fn run_migrations() {
sp_tracing::try_init_simple();
let transport: Transport =
var("WS").unwrap_or("wss://kusama-rpc.polkadot.io:443".to_string()).into();
let maybe_state_snapshot: Option<SnapshotConfig> = var("SNAP").map(|s| s.into()).ok();
let mut ext = Builder::<Block>::default()
.mode(if let Some(state_snapshot) = maybe_state_snapshot {
Mode::OfflineOrElseOnline(
OfflineConfig { state_snapshot: state_snapshot.clone() },
OnlineConfig {
transport,
state_snapshot: Some(state_snapshot),
..Default::default()
},
)
} else {
Mode::Online(OnlineConfig { transport, ..Default::default() })
})
.build()
.await
.unwrap();
ext.execute_with(|| Runtime::on_runtime_upgrade());
}
}