Updated error to be more expressive.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s

This commit is contained in:
2026-02-25 10:16:50 -05:00
parent 7e067fde8c
commit 5251689158
15 changed files with 211 additions and 106 deletions

67
tests/add_test.rs Normal file
View File

@@ -0,0 +1,67 @@
mod support;
use morethantext::{
action::{Addition, DocDef, Field, FieldType, Query},
ErrorID, MoreThanText, Name,
};
use std::collections::HashSet;
use support::random_name;
use uuid::Uuid;
#[test]
fn can_new_documents_be_added() {
let count = 5;
let mut mtt = MoreThanText::new();
let doc_name = random_name();
let field_name = random_name();
let mut data: HashSet<Field> = HashSet::new();
for i in 0..count {
data.insert(i.into());
}
let mut docdef = DocDef::new(doc_name.clone());
docdef.add_field(field_name.clone(), FieldType::Integer);
mtt.create_document(docdef);
for item in data.iter() {
let mut add = Addition::new(doc_name.clone());
add.add_field(field_name.clone(), item.clone());
mtt.records(add).unwrap();
}
let qry = Query::new(doc_name.clone());
let recs = mtt.records(qry).unwrap();
assert_eq!(recs.len(), data.len());
for rec in recs.iter() {
let result = rec.get(&field_name).unwrap();
assert!(
data.contains(&result),
"did not find {:?} in {:?}",
result,
data
);
data.remove(&result);
}
assert_eq!(data.len(), 0, "{:?} did not appear in query", data);
}
#[test]
#[ignore = "need to alter error"]
fn does_it_error_on_a_bad_field_name() {
let mut mtt = MoreThanText::new();
let doc_name = Name::english("empty");
mtt.create_document(DocDef::new(doc_name.clone()));
let mut add = Addition::new(doc_name.clone());
add.add_field(Name::english("missing"), "stuff");
let result = mtt
.records(add)
.unwrap_err()
.get_error_ids()
.back()
.unwrap()
.clone();
match result {
ErrorID::NameNotFound => {}
_ => unreachable!(
"got {:?}: should have been document field not found.",
result
),
}
}

View File

@@ -1,8 +1,11 @@
mod support;
use morethantext::{action::*, ErrorID, Include, MoreThanText, Name, Path, TestMoreThanText};
use std::{
sync::mpsc::{channel, RecvTimeoutError},
time::Duration,
};
use support::random_name;
use uuid::Uuid;
pub static TIMEOUT: Duration = Duration::from_millis(500);
@@ -14,7 +17,7 @@ fn are_errors_produced_for_duplicate_names() {
mtt.create_document(docdef.clone()).unwrap();
match mtt.create_document(docdef) {
Ok(_) => assert!(false, "should have failed"),
Err(err) => match err.error_id() {
Err(err) => match err.get_error_ids().back().unwrap() {
ErrorID::NameAlreadyExists => {}
_ => unreachable!("got {:?}, should be name already exists", err),
},
@@ -24,7 +27,7 @@ fn are_errors_produced_for_duplicate_names() {
#[test]
fn does_document_respond_to() {
let mut mtt = MoreThanText::new();
let doc_name = TestMoreThanText::random_name();
let doc_name = 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());

6
tests/support.rs Normal file
View File

@@ -0,0 +1,6 @@
use morethantext::Name;
use uuid::Uuid;
pub fn random_name() -> Name {
Name::english(Uuid::new_v4().to_string().as_str())
}