Fixed the ignored session tests.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s

This commit is contained in:
2026-03-08 16:02:08 -04:00
parent aca474b42c
commit c7054e4306
2 changed files with 24 additions and 16 deletions

View File

@@ -55,10 +55,10 @@ impl Session {
let mut delete = Delete::new(Session::doc_names()[0].clone()); let mut delete = Delete::new(Session::doc_names()[0].clone());
let delete_qry = delete.get_query_mut(); let delete_qry = delete.get_query_mut();
let mut delete_calc = Calculation::new(Operand::LessThan); let mut delete_calc = Calculation::new(Operand::LessThan);
delete_calc.add_value(FieldType::DateTime).unwrap();
delete_calc delete_calc
.add_value(CalcValue::Existing(FieldType::DateTime)) .add_value(CalcValue::Existing(FieldType::DateTime))
.unwrap(); .unwrap();
delete_calc.add_value(FieldType::DateTime).unwrap();
delete_qry.add(name_expire.clone(), delete_calc); delete_qry.add(name_expire.clone(), delete_calc);
let delete_func = DocFuncType::Trigger(delete.into()); let delete_func = DocFuncType::Trigger(delete.into());
docdef.add_route(Clock::get_path(), delete_func); docdef.add_route(Clock::get_path(), delete_func);

View File

@@ -1,7 +1,7 @@
use chrono::{DateTime, Utc}; use chrono::{DateTime, Utc};
use morethantext::{ use morethantext::{
action::{Addition, CalcValue, Calculation, Field, FieldType, Operand, Query, Record}, action::{Addition, CalcValue, Calculation, Field, FieldType, Operand, Query, Record},
MTTError, MoreThanText, Name, TestMoreThanText, Update, Action, ErrorID, Include, MTTError, MoreThanText, Name, Path, TestMoreThanText, Update,
}; };
use std::time::Duration; use std::time::Duration;
use uuid::Uuid; use uuid::Uuid;
@@ -77,17 +77,18 @@ fn is_expiration_date_set_in_the_future() {
} }
#[test] #[test]
#[ignore = "hangs without completing"]
fn are_session_ids_unique_on_update() { fn are_session_ids_unique_on_update() {
let mut mtt = MoreThanText::new(); let mut mtt = MoreThanText::new();
let id_name = Name::english("id");
let id = mtt.validate_session(None); let id = mtt.validate_session(None);
let mut addition = Addition::new(doc_name()); let mut addition = Addition::new(doc_name());
addition.add_field(Name::english("id"), id); addition.add_field(id_name.clone(), id);
let mut error = MTTError::new(ErrorID::IndexEntryAlreadyExists(id.into()));
error.add_parent(ErrorID::Field(id_name.into()));
error.add_parent(ErrorID::Document(Name::english("session").into()));
match mtt.records(addition) { match mtt.records(addition) {
Ok(data) => unreachable!("got {:?} should have been error", data), Ok(data) => unreachable!("got {:?} should have been error", data),
Err(err) => match err { Err(err) => assert_eq!(err.to_string(), error.to_string()),
_ => unreachable!("got {:?}, should have been not unique", err),
},
} }
} }
@@ -110,27 +111,34 @@ fn does_expire_update_on_query() {
} }
#[test] #[test]
#[ignore = "failing to update"]
fn are_expired_sessions_removed() { fn are_expired_sessions_removed() {
let test_env = TestMoreThanText::new(); let id_name = Name::english("id");
let mut test_env = TestMoreThanText::new();
let mut mtt = test_env.get_morethantext(); let mut mtt = test_env.get_morethantext();
for _ in 0..5 {
mtt.validate_session(None);
}
let id = mtt.validate_session(None); let id = mtt.validate_session(None);
let mut update = Update::new(doc_name()); let mut update = Update::new(doc_name());
let mut calc = Calculation::new(Operand::Equal); let mut calc = Calculation::new(Operand::Equal);
calc.add_value(CalcValue::Existing(FieldType::Uuid)) calc.add_value(CalcValue::Existing(FieldType::Uuid))
.unwrap(); .unwrap();
calc.add_value(id.clone()).unwrap(); calc.add_value(id.clone()).unwrap();
update update.get_query_mut().add(id_name.clone(), calc.clone());
.get_query_mut()
.add(Name::english("id"), calc.clone());
let expire = Utc::now() - Duration::from_secs(10); let expire = Utc::now() - Duration::from_secs(10);
update update
.get_values_mut() .get_values_mut()
.add_field(Name::english("expire"), expire); .add_field(Name::english("expire"), expire);
mtt.records(update).unwrap(); mtt.records(update).unwrap();
let path = Path::new(
Include::All,
Include::Just(doc_name().into()),
Include::Just(Action::OnDelete),
);
test_env.register_channel(vec![path]);
test_env.send_time_pulse(); test_env.send_time_pulse();
let mut qry = Query::new(doc_name()); let result = test_env.get_trigger_records(Action::OnDelete);
qry.add(Name::english("id"), calc.clone()); assert_eq!(result.len(), 1, "incorrect number of records");
let result = mtt.records(qry).unwrap(); let rec = result.iter().last().unwrap();
assert_eq!(result.len(), 0); assert_eq!(rec.get(id_name).unwrap(), id.into());
} }