From 5f06e0847fc61a0c4bb33ac23aa4a0c5230a42fe Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Wed, 19 Mar 2025 11:01:37 +0100 Subject: [PATCH] test(gpodder_sqlite): added some tests for AuthStore --- gpodder_sqlite/tests/auth_test.rs | 57 ++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/gpodder_sqlite/tests/auth_test.rs b/gpodder_sqlite/tests/auth_test.rs index 5dd26f4..2fe0945 100644 --- a/gpodder_sqlite/tests/auth_test.rs +++ b/gpodder_sqlite/tests/auth_test.rs @@ -1,6 +1,6 @@ mod common; -use chrono::SubsecRound; +use chrono::{SubsecRound, TimeDelta}; use gpodder::{AuthStore, Session}; use gpodder_sqlite::SqliteRepository; @@ -47,3 +47,58 @@ fn test_create_session() { let session = store.get_session(123).expect("operation shouldn't fail"); assert_eq!(session, Some(new_session)); } + +#[test] +fn test_remove_session() { + let (store, users) = common::setup(); + + let new_session = Session { + id: 123, + // + last_seen: chrono::Utc::now().trunc_subsecs(0), + user: users[0].clone(), + }; + + store + .insert_session(&new_session) + .expect("insert session shouldn't fail"); + + assert!(store + .get_session(123) + .expect("get session shouldn't fail") + .is_some()); + + store.remove_session(123).expect("remove shouldn't fail"); + + assert!(store + .get_session(123) + .expect("get session shouldn't fail") + .is_none()); +} + +#[test] +fn test_refresh_session() { + let (store, users) = common::setup(); + + let mut new_session = Session { + id: 123, + // + last_seen: chrono::Utc::now().trunc_subsecs(0) - TimeDelta::seconds(10), + user: users[0].clone(), + }; + + store + .insert_session(&new_session) + .expect("insert session shouldn't fail"); + + store + .refresh_session(&new_session, chrono::Utc::now().trunc_subsecs(0)) + .expect("refresh session shouldn't fail"); + + new_session.last_seen = chrono::Utc::now().trunc_subsecs(0); + + assert_eq!( + store.get_session(123).expect("get session shouldn't fail"), + Some(new_session) + ); +}