Moved client requests into lib testing.
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:
@@ -1,16 +1,11 @@
|
||||
use morethantext::{action::*, ErrorID, Name, MoreThanText, TestMoreThanText};
|
||||
use morethantext::{action::*, ErrorID, Include, MoreThanText, Name, Path, TestMoreThanText};
|
||||
use std::{
|
||||
sync::mpsc::{channel, RecvTimeoutError},
|
||||
time::Duration,
|
||||
};
|
||||
use uuid::Uuid;
|
||||
|
||||
#[test]
|
||||
fn is_document_created() {
|
||||
let mut mtt = MoreThanText::new();
|
||||
let doc_name = TestMoreThanText::random_name();
|
||||
let docdef = DocDef::new(doc_name.clone());
|
||||
mtt.create_document(docdef).unwrap();
|
||||
let qry = Query::new(doc_name);
|
||||
let result = mtt.records(qry).unwrap();
|
||||
assert_eq!(result.len(), 0);
|
||||
}
|
||||
pub static TIMEOUT: Duration = Duration::from_millis(500);
|
||||
|
||||
#[test]
|
||||
fn are_errors_produced_for_duplicate_names() {
|
||||
@@ -20,8 +15,55 @@ fn are_errors_produced_for_duplicate_names() {
|
||||
match mtt.create_document(docdef) {
|
||||
Ok(_) => assert!(false, "should have failed"),
|
||||
Err(err) => match err.error_id() {
|
||||
ErrorID::NameAlreadyExists => {},
|
||||
ErrorID::NameAlreadyExists => {}
|
||||
_ => unreachable!("got {:?}, should be name already exists", err),
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn does_document_respond_to() {
|
||||
let mut mtt = MoreThanText::new();
|
||||
let doc_name = TestMoreThanText::random_name();
|
||||
let mut requests: Vec<UserAction> = Vec::new();
|
||||
requests.push(Addition::new(doc_name.clone()).into());
|
||||
requests.push(Delete::new(doc_name.clone()).into());
|
||||
requests.push(Query::new(doc_name.clone()).into());
|
||||
requests.push(Update::new(doc_name.clone()).into());
|
||||
let docdef = DocDef::new(doc_name.clone());
|
||||
mtt.create_document(docdef).unwrap();
|
||||
for req in requests.iter() {
|
||||
let result = mtt.records(req.clone()).unwrap();
|
||||
assert_eq!(result.len(), 0, "from {:?}", req);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn does_document_ignore_other_document_requests() {
|
||||
let mut mtt = TestMoreThanText::new();
|
||||
let quiet = Name::english("quiet");
|
||||
let alt = Name::english("alt");
|
||||
mtt.create_document(DocDef::new(quiet.clone())).unwrap();
|
||||
mtt.create_document(DocDef::new(alt.clone())).unwrap();
|
||||
let paths = vec![Path::new(
|
||||
Include::All,
|
||||
Include::Just(quiet.clone().into()),
|
||||
Include::All,
|
||||
)];
|
||||
let rx = mtt.register_channel(paths);
|
||||
let mut requests: Vec<UserAction> = Vec::new();
|
||||
requests.push(Addition::new(alt.clone()).into());
|
||||
requests.push(Delete::new(alt.clone()).into());
|
||||
requests.push(Query::new(alt.clone()).into());
|
||||
requests.push(Update::new(alt.clone()).into());
|
||||
for req in requests.iter() {
|
||||
mtt.records(req.clone()).unwrap();
|
||||
}
|
||||
match rx.recv_timeout(TIMEOUT) {
|
||||
Ok(msg) => unreachable!("got {:?} should have timed out", msg),
|
||||
Err(err) => match err {
|
||||
RecvTimeoutError::Timeout => {}
|
||||
_ => unreachable!("got {:?}, should have timed out", err),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user