From 36b414d0c46d7d47bab88d144f853962b5e4fdab Mon Sep 17 00:00:00 2001 From: Jeff Baskin Date: Wed, 18 Feb 2026 13:08:47 -0500 Subject: [PATCH] Began moving session tests into library tests. --- src/action.rs | 2 +- src/document.rs | 2 +- src/document/session.rs | 2 ++ src/lib.rs | 2 +- tests/lib_session_test.rs | 38 +++++++++++++++++++++++++++++++++++++- 5 files changed, 42 insertions(+), 4 deletions(-) diff --git a/src/action.rs b/src/action.rs index 50cfe4c..3db029c 100644 --- a/src/action.rs +++ b/src/action.rs @@ -10,7 +10,7 @@ mod show; mod update; mod user; -pub use crate::document::{DocDef, Field, FieldType, Records}; +pub use crate::document::{DocDef, Field, FieldType, Record, Records}; pub use action_type::Action; pub use addition::Addition; pub use calculation::{CalcValue, Calculation, Operand}; diff --git a/src/document.rs b/src/document.rs index 92d99b6..b76d882 100644 --- a/src/document.rs +++ b/src/document.rs @@ -11,5 +11,5 @@ pub use clock::Clock; pub use create::CreateDoc; pub use definition::DocDef; pub use field::{Field, FieldType}; -pub use record::Records; +pub use record::{Record, Records}; pub use session::Session; diff --git a/src/document/session.rs b/src/document/session.rs index 8058ebe..243fc9f 100644 --- a/src/document/session.rs +++ b/src/document/session.rs @@ -163,6 +163,7 @@ mod sessions { } } + /* #[test] fn is_session_document_created() { let setup = Setup::new(); @@ -232,6 +233,7 @@ mod sessions { _ => unreachable!("got {:?}, should have gotten records", action), } } + */ #[test] #[ignore] diff --git a/src/lib.rs b/src/lib.rs index 848d041..82bfd25 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2,7 +2,7 @@ pub mod action; mod document; mod message; mod mtterror; -mod name; +pub mod name; mod queue; use action::*; diff --git a/tests/lib_session_test.rs b/tests/lib_session_test.rs index 5f1192b..601ba6b 100644 --- a/tests/lib_session_test.rs +++ b/tests/lib_session_test.rs @@ -1,6 +1,25 @@ -use morethantext::MoreThanText; +use chrono::{DateTime, Utc}; +use morethantext::{ + action::{CalcValue, Calculation, Field, FieldType, Operand, Query, Record}, + MTTError, MoreThanText, Name, +}; +use std::time::Duration; use uuid::Uuid; +fn get_session(mtt: &mut MoreThanText, id: &Uuid) -> Result { + let doc_name = Name::english("session"); + let mut qry = Query::new(doc_name); + let mut calc = Calculation::new(Operand::Equal); + calc.add_value(CalcValue::Existing(FieldType::Uuid)) + .unwrap(); + calc.add_value(id.clone()).unwrap(); + qry.add(Name::english("id"), calc.clone()); + match mtt.records(qry) { + Ok(data) => Ok(data.iter().last().unwrap()), + Err(err) => Err(err), + } +} + #[test] fn are_session_ids_unique() { let mut mtt = MoreThanText::new(); @@ -36,3 +55,20 @@ fn returns_same_session_id_when_valid() { let result = mtt.validate_session(Some(id.to_string())); assert_eq!(result, id); } + +#[test] +fn is_expiration_date_set_in_the_future() { + let mut mtt = MoreThanText::new(); + let start_time = Utc::now() + Duration::from_hours(1); + let id = mtt.validate_session(None); + let end_time = Utc::now() + Duration::from_hours(1); + let rec = get_session(&mut mtt, &id).unwrap(); + let holder = rec.get(Name::english("expire")).unwrap(); + match holder { + Field::DateTime(data) => { + assert!(data > start_time, "expire should be after {:?}", start_time); + assert!(data < end_time, "expire should be before {:?}", end_time); + } + _ => unreachable!("got {:?} should have been date time", holder), + }; +}