update tests

This commit is contained in:
qdequele 2020-02-13 10:25:37 +01:00
parent 4986adc186
commit ce8e12c7c5
No known key found for this signature in database
GPG Key ID: B3F0A000EBF11745
6 changed files with 68 additions and 32 deletions

View File

@ -93,11 +93,7 @@ impl DataInner {
let frequency: HashMap<_, _> = fields_frequency let frequency: HashMap<_, _> = fields_frequency
.into_iter() .into_iter()
.filter_map(|(a, c)| { .filter_map(|(a, c)| {
if let Some(name) = schema.name(a) { schema.name(a).map(|name| (name.to_string(), c))
return Some((name.to_string(), c));
} else {
return None;
}
}) })
.collect(); .collect();

View File

@ -302,7 +302,7 @@ impl<'a> SearchBuilder<'a> {
Err(err) => error!("Error during criteria builder; {:?}", err), Err(err) => error!("Error during criteria builder; {:?}", err),
} }
} }
}; }
} }
builder.push(DocumentId); builder.push(DocumentId);
return Ok(Some(builder.build())); return Ok(Some(builder.build()));
@ -416,7 +416,7 @@ fn calculate_matches(
if !attributes_to_retrieve.contains(attribute) { if !attributes_to_retrieve.contains(attribute) {
continue; continue;
} }
}; }
if !schema.displayed_name().contains(attribute) { if !schema.displayed_name().contains(attribute) {
continue; continue;
} }

View File

@ -25,7 +25,7 @@ pub fn main() -> Result<(), MainError> {
let data = Data::new(opt.clone()); let data = Data::new(opt.clone());
if env::var("MEILI_NO_ANALYTICS") == Err(NotPresent) { if env::var("MEILI_NO_ANALYTICS") == Err(NotPresent) {
thread::spawn(|| analytics::analytics_sender()); thread::spawn(analytics::analytics_sender);
} }
let data_cloned = data.clone(); let data_cloned = data.clone();

View File

@ -82,8 +82,8 @@ pub async fn get_all(ctx: Request<Data>) -> SResult<Response> {
let settings = Settings { let settings = Settings {
ranking_rules: Some(ranking_rules), ranking_rules: Some(ranking_rules),
ranking_distinct: Some(ranking_distinct), ranking_distinct: Some(ranking_distinct),
searchable_attributes: searchable_attributes, searchable_attributes,
displayed_attributes: displayed_attributes, displayed_attributes,
stop_words: Some(stop_words), stop_words: Some(stop_words),
synonyms: Some(synonyms), synonyms: Some(synonyms),
index_new_fields: Some(index_new_fields), index_new_fields: Some(index_new_fields),

View File

@ -1,3 +1,5 @@
#![allow(dead_code)]
use serde_json::Value; use serde_json::Value;
use std::error::Error; use std::error::Error;
use std::time::Duration; use std::time::Duration;
@ -97,9 +99,15 @@ pub fn enrich_server_with_movies_settings(
let req = http::Request::post("/indexes/movies/settings") let req = http::Request::post("/indexes/movies/settings")
.body(Body::from(body)) .body(Body::from(body))
.unwrap(); .unwrap();
let _res = server.simulate(req).unwrap(); let res = server.simulate(req).unwrap();
block_on(sleep(Duration::from_secs(5))); let mut buf = Vec::new();
block_on(res.into_body().read_to_end(&mut buf)).unwrap();
let response: Value = serde_json::from_slice(&buf).unwrap();
assert!(response["updateId"].as_u64().is_some());
wait_update_id(server, response["updateId"].as_u64().unwrap());
Ok(()) Ok(())
} }
@ -112,9 +120,15 @@ pub fn enrich_server_with_movies_documents(
let req = http::Request::post("/indexes/movies/documents") let req = http::Request::post("/indexes/movies/documents")
.body(Body::from(body)) .body(Body::from(body))
.unwrap(); .unwrap();
let _res = server.simulate(req).unwrap(); let res = server.simulate(req).unwrap();
block_on(sleep(Duration::from_secs(10))); let mut buf = Vec::new();
block_on(res.into_body().read_to_end(&mut buf)).unwrap();
let response: Value = serde_json::from_slice(&buf).unwrap();
assert!(response["updateId"].as_u64().is_some());
wait_update_id(server, response["updateId"].as_u64().unwrap());
Ok(()) Ok(())
} }
@ -141,5 +155,31 @@ pub fn update_config(server: &mut TestBackend<Service<Data>>, config: Value) {
let res = server.simulate(req).unwrap(); let res = server.simulate(req).unwrap();
assert_eq!(res.status(), 202); assert_eq!(res.status(), 202);
block_on(sleep(Duration::from_secs(5))); let mut buf = Vec::new();
block_on(res.into_body().read_to_end(&mut buf)).unwrap();
let response: Value = serde_json::from_slice(&buf).unwrap();
assert!(response["updateId"].as_u64().is_some());
wait_update_id(server, response["updateId"].as_u64().unwrap());
}
pub fn wait_update_id(server: &mut TestBackend<Service<Data>>, update_id: u64) {
loop {
let req = http::Request::get(format!("/indexes/movies/updates/{}", update_id))
.body(Body::empty())
.unwrap();
let res = server.simulate(req).unwrap();
assert_eq!(res.status(), 200);
let mut buf = Vec::new();
block_on(res.into_body().read_to_end(&mut buf)).unwrap();
let response: Value = serde_json::from_slice(&buf).unwrap();
if response["status"] == "processed" {
return
}
block_on(sleep(Duration::from_secs(1)));
}
} }

View File

@ -38,8 +38,8 @@ fn create_index_with_name() {
assert_eq!(r1_name, "movies"); assert_eq!(r1_name, "movies");
assert_eq!(r1_uid.len(), 8); assert_eq!(r1_uid.len(), 8);
assert_eq!(r1_created_at.len(), 27); assert!(r1_created_at.len() > 1);
assert_eq!(r1_updated_at.len(), 27); assert!(r1_updated_at.len() > 1);
// 2 - Check the list of indexes // 2 - Check the list of indexes
// Must have 1 index with the exact same content that the request 1 // Must have 1 index with the exact same content that the request 1
@ -98,8 +98,8 @@ fn create_index_with_uid() {
assert_eq!(r1_name, "movies"); assert_eq!(r1_name, "movies");
assert_eq!(r1_uid, "movies"); assert_eq!(r1_uid, "movies");
assert_eq!(r1_created_at.len(), 27); assert!(r1_created_at.len() > 1);
assert_eq!(r1_updated_at.len(), 27); assert!(r1_updated_at.len() > 1);
// 2 - Check the list of indexes // 2 - Check the list of indexes
// Must have 1 index with the exact same content that the request 1 // Must have 1 index with the exact same content that the request 1
@ -159,8 +159,8 @@ fn create_index_with_name_and_uid() {
assert_eq!(r1_name, "Films"); assert_eq!(r1_name, "Films");
assert_eq!(r1_uid, "fr_movies"); assert_eq!(r1_uid, "fr_movies");
assert_eq!(r1_created_at.len(), 27); assert!(r1_created_at.len() > 1);
assert_eq!(r1_updated_at.len(), 27); assert!(r1_updated_at.len() > 1);
// 2 - Check the list of indexes // 2 - Check the list of indexes
// Must have 1 index with the exact same content that the request 1 // Must have 1 index with the exact same content that the request 1
@ -218,8 +218,8 @@ fn rename_index() {
assert_eq!(r1_name, "movies"); assert_eq!(r1_name, "movies");
assert_eq!(r1_uid.len(), 8); assert_eq!(r1_uid.len(), 8);
assert_eq!(r1_created_at.len(), 27); assert!(r1_created_at.len() > 1);
assert_eq!(r1_updated_at.len(), 27); assert!(r1_updated_at.len() > 1);
// 2 - Update an index name // 2 - Update an index name
// Update "movies" to "TV Shows" // Update "movies" to "TV Shows"
@ -250,7 +250,7 @@ fn rename_index() {
assert_eq!(r2_name, "TV Shows"); assert_eq!(r2_name, "TV Shows");
assert_eq!(r2_uid, r1_uid); assert_eq!(r2_uid, r1_uid);
assert_eq!(r2_created_at, r1_created_at); assert_eq!(r2_created_at, r1_created_at);
assert_eq!(r2_updated_at.len(), 27); assert!(r2_updated_at.len() > 1);
// 3 - Check the list of indexes // 3 - Check the list of indexes
// Must have 1 index with the exact same content that the request 2 // Must have 1 index with the exact same content that the request 2
@ -309,8 +309,8 @@ fn delete_index_and_recreate_it() {
assert_eq!(r1_name, "movies"); assert_eq!(r1_name, "movies");
assert_eq!(r1_uid.len(), 8); assert_eq!(r1_uid.len(), 8);
assert_eq!(r1_created_at.len(), 27); assert!(r1_created_at.len() > 1);
assert_eq!(r1_updated_at.len(), 27); assert!(r1_updated_at.len() > 1);
// 2 - Check the list of indexes // 2 - Check the list of indexes
// Must have 1 index with the exact same content that the request 1 // Must have 1 index with the exact same content that the request 1
@ -392,8 +392,8 @@ fn delete_index_and_recreate_it() {
assert_eq!(r1_name, "movies"); assert_eq!(r1_name, "movies");
assert_eq!(r1_uid.len(), 8); assert_eq!(r1_uid.len(), 8);
assert_eq!(r1_created_at.len(), 27); assert!(r1_created_at.len() > 1);
assert_eq!(r1_updated_at.len(), 27); assert!(r1_updated_at.len() > 1);
// 6 - Check the list of indexes // 6 - Check the list of indexes
// Must have 1 index with the exact same content that the request 1 // Must have 1 index with the exact same content that the request 1
@ -452,8 +452,8 @@ fn check_multiples_indexes() {
assert_eq!(r1_name, "movies"); assert_eq!(r1_name, "movies");
assert_eq!(r1_uid.len(), 8); assert_eq!(r1_uid.len(), 8);
assert_eq!(r1_created_at.len(), 27); assert!(r1_created_at.len() > 1);
assert_eq!(r1_updated_at.len(), 27); assert!(r1_updated_at.len() > 1);
// 2 - Check the list of indexes // 2 - Check the list of indexes
// Must have 1 index with the exact same content that the request 1 // Must have 1 index with the exact same content that the request 1
@ -507,8 +507,8 @@ fn check_multiples_indexes() {
assert_eq!(r3_name, "films"); assert_eq!(r3_name, "films");
assert_eq!(r3_uid.len(), 8); assert_eq!(r3_uid.len(), 8);
assert_eq!(r3_created_at.len(), 27); assert!(r3_created_at.len() > 1);
assert_eq!(r3_updated_at.len(), 27); assert!(r3_updated_at.len() > 1);
// 4 - Check the list of indexes // 4 - Check the list of indexes
// Must have 2 index with the exact same content that the request 1 and 3 // Must have 2 index with the exact same content that the request 1 and 3