Began moving session tests into library tests.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 0s

This commit is contained in:
Jeff Baskin 2026-02-18 13:08:47 -05:00
parent 0614c98221
commit 36b414d0c4
5 changed files with 42 additions and 4 deletions

View File

@ -10,7 +10,7 @@ mod show;
mod update; mod update;
mod user; 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 action_type::Action;
pub use addition::Addition; pub use addition::Addition;
pub use calculation::{CalcValue, Calculation, Operand}; pub use calculation::{CalcValue, Calculation, Operand};

View File

@ -11,5 +11,5 @@ pub use clock::Clock;
pub use create::CreateDoc; pub use create::CreateDoc;
pub use definition::DocDef; pub use definition::DocDef;
pub use field::{Field, FieldType}; pub use field::{Field, FieldType};
pub use record::Records; pub use record::{Record, Records};
pub use session::Session; pub use session::Session;

View File

@ -163,6 +163,7 @@ mod sessions {
} }
} }
/*
#[test] #[test]
fn is_session_document_created() { fn is_session_document_created() {
let setup = Setup::new(); let setup = Setup::new();
@ -232,6 +233,7 @@ mod sessions {
_ => unreachable!("got {:?}, should have gotten records", action), _ => unreachable!("got {:?}, should have gotten records", action),
} }
} }
*/
#[test] #[test]
#[ignore] #[ignore]

View File

@ -2,7 +2,7 @@ pub mod action;
mod document; mod document;
mod message; mod message;
mod mtterror; mod mtterror;
mod name; pub mod name;
mod queue; mod queue;
use action::*; use action::*;

View File

@ -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; use uuid::Uuid;
fn get_session(mtt: &mut MoreThanText, id: &Uuid) -> Result<Record, MTTError> {
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] #[test]
fn are_session_ids_unique() { fn are_session_ids_unique() {
let mut mtt = MoreThanText::new(); 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())); let result = mtt.validate_session(Some(id.to_string()));
assert_eq!(result, id); 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),
};
}