wip, test: add tests for only-entity queries
ci/woodpecker/push/woodpecker Pipeline was successful Details

feat/lang-upgrades
Tomáš Mládek 2023-07-28 11:27:48 +02:00
parent d7f48f1880
commit 9e0b198e63
2 changed files with 14 additions and 3 deletions

View File

@ -57,9 +57,10 @@ pub fn execute(
&& matches!(pattern.attribute, PatternQueryComponent::Discard)
&& matches!(pattern.value, PatternQueryComponent::Discard) =>
{
Ok(InnerQueryResult::Entities(
entries.into_iter().map(|e| e.entity).collect(),
))
let mut result: Vec<Vec<u8>> = entries.into_iter().map(|e| e.entity).collect();
result.sort_unstable();
result.dedup();
Ok(InnerQueryResult::Entities(result))
}
QueryPart::Matches(pattern)
if matches!(pattern.entity, PatternQueryComponent::Discard)

View File

@ -547,6 +547,16 @@ mod test {
let result = connection.query::<Vec<Entry>>(query).unwrap();
assert_eq!(result.len(), 0);
// Test only-queries
let query = format!(r#"(matches ? ? ?)"#).parse().unwrap();
let result = connection.query::<Vec<Address>>(query).unwrap();
assert_eq!(result.len(), 2);
let query = format!(r#"(matches ? _ _)"#).parse().unwrap();
let result = connection.query::<Vec<Address>>(query).unwrap();
println!("{:?}", result);
assert_eq!(result.len(), 1);
// Test IN queries for entities
let other_entity = Address::Uuid(uuid::Uuid::new_v4());
upend_insert_val!(connection, random_entity, ATTR_LABEL, "BAZQUX").unwrap();