From a15fb0d63274eae9a0dbbc04e5327d52d26612fa Mon Sep 17 00:00:00 2001 From: Andrew Jones Date: Wed, 1 Dec 2021 13:00:45 +0000 Subject: [PATCH] Add timestamp pallet test (#340) * Add timestamp pallet test * Remove println * Make timestamp test more reliable --- tests/integration/frame/mod.rs | 1 + tests/integration/frame/timestamp.rs | 48 ++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 tests/integration/frame/timestamp.rs diff --git a/tests/integration/frame/mod.rs b/tests/integration/frame/mod.rs index 8d18e46748..c7ec95aa03 100644 --- a/tests/integration/frame/mod.rs +++ b/tests/integration/frame/mod.rs @@ -21,3 +21,4 @@ mod contracts; mod staking; mod sudo; mod system; +mod timestamp; diff --git a/tests/integration/frame/timestamp.rs b/tests/integration/frame/timestamp.rs new file mode 100644 index 0000000000..301305783f --- /dev/null +++ b/tests/integration/frame/timestamp.rs @@ -0,0 +1,48 @@ +// Copyright 2019-2021 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 . + +use crate::test_context; +use std::time::{ + SystemTime, + UNIX_EPOCH, +}; + +#[async_std::test] +async fn storage_get_current_timestamp() { + let sys_timestamp = SystemTime::now() + .duration_since(UNIX_EPOCH) + .unwrap() + .as_millis() as u64; + let cxt = test_context().await; + + // wait until blocks are produced to get the timestamp + let mut sub = cxt.client().rpc().subscribe_blocks().await.unwrap(); + let block_hash = loop { + if let Ok(Some(block)) = sub.next().await { + break block.hash() + } + }; + + let timestamp = cxt + .api + .storage() + .timestamp() + .now(Some(block_hash)) + .await + .unwrap(); + + assert!(timestamp > sys_timestamp) +}