-
Notifications
You must be signed in to change notification settings - Fork 245
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move test crates into a "testing" folder and add a ui (trybuild) test…
… and ui-test helpers (#567) * move test crates into a testing folder and add a ui test and helpers * undo wee mixup with another PR * cargo fmt * clippy * tidy ui-tests a little * test different DispatchError types * refactor dispatch error stuff * name ui tests * duff => useless * align versions and cargo fmt
- Loading branch information
Showing
31 changed files
with
1,005 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
[package] | ||
name = "integration-tests" | ||
version = "0.21.0" | ||
authors = ["Parity Technologies <admin@parity.io>"] | ||
edition = "2021" | ||
|
||
license = "GPL-3.0" | ||
readme = "../README.md" | ||
repository = "https://github.com/paritytech/subxt" | ||
documentation = "https://docs.rs/subxt" | ||
homepage = "https://www.parity.io/" | ||
description = "Subxt integration tests that rely on the Substrate binary" | ||
|
||
[features] | ||
default = ["subxt/integration-tests"] | ||
|
||
[dev-dependencies] | ||
assert_matches = "1.5.0" | ||
codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive", "full", "bit-vec"] } | ||
frame-metadata = "15.0.0" | ||
futures = "0.3.13" | ||
hex = "0.4.3" | ||
scale-info = { version = "2.0.0", features = ["bit-vec"] } | ||
sp-core = { version = "6.0.0", default-features = false } | ||
sp-keyring = "6.0.0" | ||
sp-runtime = "6.0.0" | ||
subxt = { version = "0.21.0", path = "../../subxt" } | ||
test-runtime = { path = "../test-runtime" } | ||
tokio = { version = "1.8", features = ["macros", "time"] } | ||
tracing = "0.1.34" | ||
tracing-subscriber = "0.3.11" | ||
wabt = "0.10.0" | ||
which = "4.0.2" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,133 @@ | ||
// Copyright 2019-2022 Parity Technologies (UK) Ltd. | ||
// This file is part of subxt. | ||
// | ||
// subxt is free software: you can redistribute it and/or modify | ||
// it under the terms of the GNU General Public License as published by | ||
// the Free Software Foundation, either version 3 of the License, or | ||
// (at your option) any later version. | ||
// | ||
// subxt is distributed in the hope that it will be useful, | ||
// but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
// GNU General Public License for more details. | ||
// | ||
// You should have received a copy of the GNU General Public License | ||
// along with subxt. If not, see <http://www.gnu.org/licenses/>. | ||
|
||
use crate::{ | ||
test_node_process, | ||
test_node_process_with, | ||
utils::node_runtime::system, | ||
}; | ||
|
||
use sp_core::storage::{ | ||
well_known_keys, | ||
StorageKey, | ||
}; | ||
use sp_keyring::AccountKeyring; | ||
|
||
#[tokio::test] | ||
async fn insert_key() { | ||
let test_node_process = test_node_process_with(AccountKeyring::Bob).await; | ||
let client = test_node_process.client(); | ||
let public = AccountKeyring::Alice.public().as_array_ref().to_vec(); | ||
client | ||
.rpc() | ||
.insert_key( | ||
"aura".to_string(), | ||
"//Alice".to_string(), | ||
public.clone().into(), | ||
) | ||
.await | ||
.unwrap(); | ||
assert!(client | ||
.rpc() | ||
.has_key(public.clone().into(), "aura".to_string()) | ||
.await | ||
.unwrap()); | ||
} | ||
|
||
#[tokio::test] | ||
async fn fetch_block_hash() { | ||
let node_process = test_node_process().await; | ||
node_process.client().rpc().block_hash(None).await.unwrap(); | ||
} | ||
|
||
#[tokio::test] | ||
async fn fetch_block() { | ||
let node_process = test_node_process().await; | ||
let client = node_process.client(); | ||
let block_hash = client.rpc().block_hash(None).await.unwrap(); | ||
client.rpc().block(block_hash).await.unwrap(); | ||
} | ||
|
||
#[tokio::test] | ||
async fn fetch_read_proof() { | ||
let node_process = test_node_process().await; | ||
let client = node_process.client(); | ||
let block_hash = client.rpc().block_hash(None).await.unwrap(); | ||
client | ||
.rpc() | ||
.read_proof( | ||
vec![ | ||
StorageKey(well_known_keys::HEAP_PAGES.to_vec()), | ||
StorageKey(well_known_keys::EXTRINSIC_INDEX.to_vec()), | ||
], | ||
block_hash, | ||
) | ||
.await | ||
.unwrap(); | ||
} | ||
|
||
#[tokio::test] | ||
async fn chain_subscribe_blocks() { | ||
let node_process = test_node_process().await; | ||
let client = node_process.client(); | ||
let mut blocks = client.rpc().subscribe_blocks().await.unwrap(); | ||
blocks.next().await.unwrap().unwrap(); | ||
} | ||
|
||
#[tokio::test] | ||
async fn chain_subscribe_finalized_blocks() { | ||
let node_process = test_node_process().await; | ||
let client = node_process.client(); | ||
let mut blocks = client.rpc().subscribe_finalized_blocks().await.unwrap(); | ||
blocks.next().await.unwrap().unwrap(); | ||
} | ||
|
||
#[tokio::test] | ||
async fn fetch_keys() { | ||
let node_process = test_node_process().await; | ||
let client = node_process.client(); | ||
let keys = client | ||
.storage() | ||
.fetch_keys::<system::storage::Account>(4, None, None) | ||
.await | ||
.unwrap(); | ||
assert_eq!(keys.len(), 4) | ||
} | ||
|
||
#[tokio::test] | ||
async fn test_iter() { | ||
let node_process = test_node_process().await; | ||
let client = node_process.client(); | ||
let mut iter = client | ||
.storage() | ||
.iter::<system::storage::Account>(None) | ||
.await | ||
.unwrap(); | ||
let mut i = 0; | ||
while iter.next().await.unwrap().is_some() { | ||
i += 1; | ||
} | ||
assert_eq!(i, 13); | ||
} | ||
|
||
#[tokio::test] | ||
async fn fetch_system_info() { | ||
let node_process = test_node_process().await; | ||
let client = node_process.client(); | ||
assert_eq!(client.rpc().system_chain().await.unwrap(), "Development"); | ||
assert_eq!(client.rpc().system_name().await.unwrap(), "Substrate Node"); | ||
assert!(!client.rpc().system_version().await.unwrap().is_empty()); | ||
} |
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
// Copyright 2019-2022 Parity Technologies (UK) Ltd. | ||
// This file is part of subxt. | ||
// | ||
// subxt is free software: you can redistribute it and/or modify | ||
// it under the terms of the GNU General Public License as published by | ||
// the Free Software Foundation, either version 3 of the License, or | ||
// (at your option) any later version. | ||
// | ||
// subxt is distributed in the hope that it will be useful, | ||
// but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
// GNU General Public License for more details. | ||
// | ||
// You should have received a copy of the GNU General Public License | ||
// along with subxt. If not, see <http://www.gnu.org/licenses/>. | ||
|
||
#![deny(unused_crate_dependencies)] | ||
|
||
#[cfg(test)] | ||
mod codegen; | ||
#[cfg(test)] | ||
mod utils; | ||
|
||
#[cfg(test)] | ||
mod client; | ||
#[cfg(test)] | ||
mod events; | ||
#[cfg(test)] | ||
mod frame; | ||
#[cfg(test)] | ||
mod metadata; | ||
#[cfg(test)] | ||
mod storage; | ||
|
||
#[cfg(test)] | ||
use test_runtime::node_runtime; | ||
#[cfg(test)] | ||
use utils::*; |
File renamed without changes.
Oops, something went wrong.