use std::time::{Duration, SystemTime}; use tokio::time::sleep; use serai_client::Serai; mod common; serai_test!( time: (|serai: Serai| async move { let mut number = serai.latest_finalized_block().await.unwrap().number(); let mut done = 0; while done < 3 { // Wait for the next block let block = serai.latest_finalized_block().await.unwrap(); if block.number() == number { sleep(Duration::from_secs(1)).await; continue; } number = block.number(); // Make sure the time we extract from the block is within 5 seconds of now let now = SystemTime::now().duration_since(SystemTime::UNIX_EPOCH).unwrap().as_secs(); assert!(now.saturating_sub(block.time().unwrap()) < 5); done += 1; } }) );