tests must include the current time
This commit is contained in:
parent
0b93cb966e
commit
69f0125eba
@ -993,14 +993,21 @@ impl fmt::Display for Web3Connection {
|
|||||||
mod tests {
|
mod tests {
|
||||||
#![allow(unused_imports)]
|
#![allow(unused_imports)]
|
||||||
use super::*;
|
use super::*;
|
||||||
use ethers::types::Block;
|
use ethers::types::{Block, U256};
|
||||||
|
use std::time::{SystemTime, UNIX_EPOCH};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_archive_node_has_block_data() {
|
fn test_archive_node_has_block_data() {
|
||||||
|
let now = SystemTime::now()
|
||||||
|
.duration_since(UNIX_EPOCH)
|
||||||
|
.expect("cannot tell the time")
|
||||||
|
.as_secs()
|
||||||
|
.into();
|
||||||
|
|
||||||
let random_block = Block {
|
let random_block = Block {
|
||||||
hash: Some(H256::random()),
|
hash: Some(H256::random()),
|
||||||
number: Some(1_000_000.into()),
|
number: Some(1_000_000.into()),
|
||||||
// TODO: timestamp?
|
timestamp: now,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1037,9 +1044,16 @@ mod tests {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_pruned_node_has_block_data() {
|
fn test_pruned_node_has_block_data() {
|
||||||
|
let now = SystemTime::now()
|
||||||
|
.duration_since(UNIX_EPOCH)
|
||||||
|
.expect("cannot tell the time")
|
||||||
|
.as_secs()
|
||||||
|
.into();
|
||||||
|
|
||||||
let head_block: SavedBlock = Arc::new(Block {
|
let head_block: SavedBlock = Arc::new(Block {
|
||||||
hash: Some(H256::random()),
|
hash: Some(H256::random()),
|
||||||
number: Some(1_000_000.into()),
|
number: Some(1_000_000.into()),
|
||||||
|
timestamp: now,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
})
|
})
|
||||||
.into();
|
.into();
|
||||||
@ -1074,4 +1088,51 @@ mod tests {
|
|||||||
assert!(!x.has_block_data(&(head_block.number() + 1)));
|
assert!(!x.has_block_data(&(head_block.number() + 1)));
|
||||||
assert!(!x.has_block_data(&(head_block.number() + 1000)));
|
assert!(!x.has_block_data(&(head_block.number() + 1000)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_lagged_node_not_has_block_data() {
|
||||||
|
let now: U256 = SystemTime::now()
|
||||||
|
.duration_since(UNIX_EPOCH)
|
||||||
|
.expect("cannot tell the time")
|
||||||
|
.as_secs()
|
||||||
|
.into();
|
||||||
|
|
||||||
|
// head block is an hour old
|
||||||
|
let head_block = Block {
|
||||||
|
hash: Some(H256::random()),
|
||||||
|
number: Some(1_000_000.into()),
|
||||||
|
timestamp: now - 3600,
|
||||||
|
..Default::default()
|
||||||
|
};
|
||||||
|
|
||||||
|
let head_block = Arc::new(head_block);
|
||||||
|
|
||||||
|
let head_block = SavedBlock::new(head_block);
|
||||||
|
let block_data_limit = u64::MAX;
|
||||||
|
|
||||||
|
let metrics = OpenRequestHandleMetrics::default();
|
||||||
|
|
||||||
|
let x = Web3Connection {
|
||||||
|
name: "name".to_string(),
|
||||||
|
display_name: None,
|
||||||
|
url: "ws://example.com".to_string(),
|
||||||
|
http_client: None,
|
||||||
|
active_requests: 0.into(),
|
||||||
|
frontend_requests: 0.into(),
|
||||||
|
internal_requests: 0.into(),
|
||||||
|
provider: AsyncRwLock::new(None),
|
||||||
|
hard_limit: None,
|
||||||
|
soft_limit: 1_000,
|
||||||
|
block_data_limit: block_data_limit.into(),
|
||||||
|
weight: 100.0,
|
||||||
|
head_block: RwLock::new(Some(head_block.clone())),
|
||||||
|
open_request_handle_metrics: Arc::new(metrics),
|
||||||
|
};
|
||||||
|
|
||||||
|
assert!(!x.has_block_data(&0.into()));
|
||||||
|
assert!(!x.has_block_data(&1.into()));
|
||||||
|
assert!(!x.has_block_data(&head_block.number()));
|
||||||
|
assert!(!x.has_block_data(&(head_block.number() + 1)));
|
||||||
|
assert!(!x.has_block_data(&(head_block.number() + 1000)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user