Fixed the ignored session tests.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user