use chrono::Duration;
use std::sync::Arc;
use tiny_counter::{EventStore, TestClock};
#[test]
fn within_requires_recent_prerequisite() {
let fixed_time = chrono::Utc::now();
let clock = TestClock::build_for_testing_at(fixed_time);
let store = EventStore::builder()
.with_clock(Arc::new(clock.clone()))
.build()
.unwrap();
store.record("login");
let result = store
.limit()
.within("login", Duration::hours(1))
.check("action");
assert!(result.is_ok());
clock.advance(Duration::hours(2));
let result = store
.limit()
.within("login", Duration::hours(1))
.check("action");
assert!(result.is_err());
}