morethantext/tests/add_test.rs
Jeff Baskin 5251689158
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s
Updated error to be more expressive.
2026-02-25 10:16:50 -05:00

68 lines
1.9 KiB
Rust

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
),
}
}