Moved session tests into general library.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s

This commit is contained in:
2026-02-19 10:39:03 -05:00
parent 8ce7bb642e
commit d85bddaa34
6 changed files with 88 additions and 269 deletions

View File

@@ -1,7 +1,7 @@
use chrono::{DateTime, Utc};
use morethantext::{
action::{Addition, CalcValue, Calculation, Field, FieldType, Operand, Query, Record},
MTTError, MoreThanText, Name,
MTTError, MoreThanText, Name, TestMoreThanText, Update,
};
use std::time::Duration;
use uuid::Uuid;
@@ -90,3 +90,46 @@ fn are_session_ids_unique_on_update() {
},
}
}
#[test]
fn does_expire_update_on_query() {
let mut mtt = MoreThanText::new();
let id = mtt.validate_session(None);
let start_time = Utc::now() + Duration::from_secs(3600);
mtt.validate_session(Some(id.to_string()));
let end_time = Utc::now() + Duration::from_secs(3601);
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),
}
}
#[test]
#[ignore = "failing to update"]
fn are_expired_sessions_removed() {
let mut mtt = TestMoreThanText::new();
let id = mtt.validate_session(None);
let mut update = Update::new(doc_name());
let mut calc = Calculation::new(Operand::Equal);
calc.add_value(CalcValue::Existing(FieldType::Uuid))
.unwrap();
calc.add_value(id.clone()).unwrap();
update
.get_query_mut()
.add(Name::english("id"), calc.clone());
let expire = Utc::now() - Duration::from_secs(10);
update
.get_values_mut()
.add_field(Name::english("expire"), expire);
mtt.records(update).unwrap();
mtt.send_time_pulse();
let mut qry = Query::new(doc_name());
qry.add(Name::english("id"), calc.clone());
let result = mtt.records(qry).unwrap();
assert_eq!(result.len(), 0);
}