test(gpodder_sqlite): add remove old sessions test

main
Jef Roosens 2025-03-19 13:22:58 +01:00
parent 5f06e0847f
commit fe8939c07e
No known key found for this signature in database
GPG Key ID: 21FD3D77D56BAF49
1 changed files with 40 additions and 0 deletions

View File

@ -102,3 +102,43 @@ fn test_refresh_session() {
Some(new_session)
);
}
#[test]
fn remove_old_sessions() {
let (store, users) = common::setup();
let now = chrono::Utc::now().trunc_subsecs(0);
let timestamps = [
now,
now - TimeDelta::seconds(1),
now - TimeDelta::seconds(2),
];
for (i, ts) in timestamps.into_iter().enumerate() {
store
.insert_session(&Session {
id: i as i64,
last_seen: ts,
user: users[0].clone(),
})
.expect("insert shouldn't fail");
}
assert_eq!(
store
.remove_old_sessions(now)
.expect("remove old sessions shouldn't fail"),
2
);
assert!(matches!(store.get_session(1), Ok(None)));
assert!(matches!(store.get_session(2), Ok(None)));
assert_eq!(
store.get_session(0).expect("get session shouldn't fail"),
Some(Session {
id: 0,
last_seen: now,
user: users[0].clone(),
})
);
}