From bd95503eba5aa79a0b32c2fb035c4cc136dd1855 Mon Sep 17 00:00:00 2001 From: Martin Tzvetanov Grigorov Date: Thu, 29 May 2025 09:03:23 +0300 Subject: [PATCH 1/3] tests: Faster search::locales IT tests Use a shared server + unique indices where possible Related-to: https://github.com/meilisearch/meilisearch/issues/4840 Signed-off-by: Martin Tzvetanov Grigorov --- crates/meilisearch/tests/search/locales.rs | 82 +++++++++++----------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/crates/meilisearch/tests/search/locales.rs b/crates/meilisearch/tests/search/locales.rs index 282589d6a..aaa65b7ea 100644 --- a/crates/meilisearch/tests/search/locales.rs +++ b/crates/meilisearch/tests/search/locales.rs @@ -89,9 +89,9 @@ static DOCUMENTS: Lazy = Lazy::new(|| { #[actix_rt::test] async fn simple_search() { - let server = Server::new().await; + let server = Server::new_shared(); + let index = server.unique_index(); - let index = server.index("test"); let documents = DOCUMENTS.clone(); index .update_settings( @@ -196,9 +196,9 @@ async fn simple_search() { #[actix_rt::test] async fn force_locales() { - let server = Server::new().await; + let server = Server::new_shared(); + let index = server.unique_index(); - let index = server.index("test"); let documents = DOCUMENTS.clone(); let (response, _) = index .update_settings( @@ -214,7 +214,7 @@ async fn force_locales() { snapshot!(response, @r###" { "taskUid": 0, - "indexUid": "test", + "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", "enqueuedAt": "[date]" @@ -274,9 +274,9 @@ async fn force_locales() { #[actix_rt::test] async fn force_locales_with_pattern() { - let server = Server::new().await; + let server = Server::new_shared(); + let index = server.unique_index(); - let index = server.index("test"); let documents = DOCUMENTS.clone(); let (response, _) = index .update_settings( @@ -292,7 +292,7 @@ async fn force_locales_with_pattern() { snapshot!(response, @r###" { "taskUid": 0, - "indexUid": "test", + "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", "enqueuedAt": "[date]" @@ -352,9 +352,9 @@ async fn force_locales_with_pattern() { #[actix_rt::test] async fn force_locales_with_pattern_nested() { - let server = Server::new().await; + let server = Server::new_shared(); + let index = server.unique_index(); - let index = server.index("test"); let documents = NESTED_DOCUMENTS.clone(); let (response, _) = index .update_settings(json!({ @@ -368,7 +368,7 @@ async fn force_locales_with_pattern_nested() { snapshot!(response, @r###" { "taskUid": 0, - "indexUid": "test", + "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", "enqueuedAt": "[date]" @@ -423,9 +423,9 @@ async fn force_locales_with_pattern_nested() { } #[actix_rt::test] async fn force_different_locales_with_pattern() { - let server = Server::new().await; + let server = Server::new_shared(); + let index = server.unique_index(); - let index = server.index("test"); let documents = DOCUMENTS.clone(); let (response, _) = index .update_settings( @@ -443,7 +443,7 @@ async fn force_different_locales_with_pattern() { snapshot!(response, @r###" { "taskUid": 0, - "indexUid": "test", + "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", "enqueuedAt": "[date]" @@ -499,9 +499,9 @@ async fn force_different_locales_with_pattern() { #[actix_rt::test] async fn auto_infer_locales_at_search_with_attributes_to_search_on() { - let server = Server::new().await; + let server = Server::new_shared(); + let index = server.unique_index(); - let index = server.index("test"); let documents = DOCUMENTS.clone(); let (response, _) = index .update_settings( @@ -521,7 +521,7 @@ async fn auto_infer_locales_at_search_with_attributes_to_search_on() { snapshot!(response, @r###" { "taskUid": 0, - "indexUid": "test", + "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", "enqueuedAt": "[date]" @@ -577,9 +577,9 @@ async fn auto_infer_locales_at_search_with_attributes_to_search_on() { #[actix_rt::test] async fn auto_infer_locales_at_search() { - let server = Server::new().await; + let server = Server::new_shared(); + let index = server.unique_index(); - let index = server.index("test"); let documents = DOCUMENTS.clone(); let (response, _) = index .update_settings( @@ -595,7 +595,7 @@ async fn auto_infer_locales_at_search() { snapshot!(response, @r###" { "taskUid": 0, - "indexUid": "test", + "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", "enqueuedAt": "[date]" @@ -676,9 +676,9 @@ async fn auto_infer_locales_at_search() { #[actix_rt::test] async fn force_different_locales_with_pattern_nested() { - let server = Server::new().await; + let server = Server::new_shared(); + let index = server.unique_index(); - let index = server.index("test"); let documents = NESTED_DOCUMENTS.clone(); let (response, _) = index .update_settings(json!({ @@ -694,7 +694,7 @@ async fn force_different_locales_with_pattern_nested() { snapshot!(response, @r###" { "taskUid": 0, - "indexUid": "test", + "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", "enqueuedAt": "[date]" @@ -774,9 +774,9 @@ async fn force_different_locales_with_pattern_nested() { #[actix_rt::test] async fn settings_change() { - let server = Server::new().await; + let server = Server::new_shared(); + let index = server.unique_index(); - let index = server.index("test"); let documents = NESTED_DOCUMENTS.clone(); let (task, _status_code) = index.add_documents(documents, None).await; index.wait_task(task.uid()).await.succeeded(); @@ -792,7 +792,7 @@ async fn settings_change() { snapshot!(response, @r###" { "taskUid": 1, - "indexUid": "test", + "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", "enqueuedAt": "[date]" @@ -855,7 +855,7 @@ async fn settings_change() { snapshot!(response, @r###" { "taskUid": 2, - "indexUid": "test", + "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", "enqueuedAt": "[date]" @@ -906,9 +906,9 @@ async fn settings_change() { #[actix_rt::test] async fn invalid_locales() { - let server = Server::new().await; + let server = Server::new_shared(); + let index = server.unique_index(); - let index = server.index("test"); let documents = DOCUMENTS.clone(); index .update_settings( @@ -945,9 +945,9 @@ async fn invalid_locales() { #[actix_rt::test] async fn invalid_localized_attributes_rules() { - let server = Server::new().await; + let server = Server::new_shared(); + let index = server.unique_index(); - let index = server.index("test"); let (response, _) = index .update_settings(json!({ "localizedAttributes": [ @@ -1015,9 +1015,9 @@ async fn invalid_localized_attributes_rules() { #[actix_rt::test] async fn simple_facet_search() { - let server = Server::new().await; + let server = Server::new_shared(); + let index = server.unique_index(); - let index = server.index("test"); let documents = DOCUMENTS.clone(); let (response, _) = index .update_settings(json!({ @@ -1027,7 +1027,7 @@ async fn simple_facet_search() { snapshot!(response, @r###" { "taskUid": 0, - "indexUid": "test", + "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", "enqueuedAt": "[date]" @@ -1073,9 +1073,9 @@ async fn simple_facet_search() { #[actix_rt::test] async fn facet_search_with_localized_attributes() { - let server = Server::new().await; + let server = Server::new_shared(); + let index = server.unique_index(); - let index = server.index("test"); let documents = DOCUMENTS.clone(); let (response, _) = index .update_settings(json!({ @@ -1089,7 +1089,7 @@ async fn facet_search_with_localized_attributes() { snapshot!(response, @r###" { "taskUid": 0, - "indexUid": "test", + "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", "enqueuedAt": "[date]" @@ -1146,9 +1146,9 @@ async fn facet_search_with_localized_attributes() { #[actix_rt::test] async fn swedish_search() { - let server = Server::new().await; + let server = Server::new_shared(); + let index = server.unique_index(); - let index = server.index("test"); let documents = json!([ {"id": "tra1-1", "product": "trä"}, {"id": "tra2-1", "product": "traktor"}, @@ -1269,9 +1269,9 @@ async fn swedish_search() { #[actix_rt::test] async fn german_search() { - let server = Server::new().await; + let server = Server::new_shared(); + let index = server.unique_index(); - let index = server.index("test"); let documents = json!([ {"id": 1, "product": "Interkulturalität"}, {"id": 2, "product": "Wissensorganisation"}, From 58207da9346f2cf965927d5b67c495fada9e3aa8 Mon Sep 17 00:00:00 2001 From: Martin Tzvetanov Grigorov Date: Thu, 29 May 2025 10:56:33 +0300 Subject: [PATCH 2/3] Trigger build Signed-off-by: Martin Tzvetanov Grigorov From 27e7c00622860149698dc43ba514df959608e85b Mon Sep 17 00:00:00 2001 From: Martin Tzvetanov Grigorov Date: Thu, 29 May 2025 11:33:10 +0300 Subject: [PATCH 3/3] Add dynamic redactions for taskUid and enqueuedAt properties Signed-off-by: Martin Tzvetanov Grigorov --- crates/meilisearch/tests/search/locales.rs | 44 +++++++++++----------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/crates/meilisearch/tests/search/locales.rs b/crates/meilisearch/tests/search/locales.rs index aaa65b7ea..b1c9b2bc2 100644 --- a/crates/meilisearch/tests/search/locales.rs +++ b/crates/meilisearch/tests/search/locales.rs @@ -211,9 +211,9 @@ async fn force_locales() { }), ) .await; - snapshot!(response, @r###" + snapshot!(json_string!(response, { ".taskUid" => "[task_uid]", ".enqueuedAt" => "[date]" }), @r###" { - "taskUid": 0, + "taskUid": "[task_uid]", "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", @@ -289,9 +289,9 @@ async fn force_locales_with_pattern() { }), ) .await; - snapshot!(response, @r###" + snapshot!(json_string!(response, { ".taskUid" => "[task_uid]", ".enqueuedAt" => "[date]" }), @r###" { - "taskUid": 0, + "taskUid": "[task_uid]", "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", @@ -365,9 +365,9 @@ async fn force_locales_with_pattern_nested() { ] })) .await; - snapshot!(response, @r###" + snapshot!(json_string!(response, { ".taskUid" => "[task_uid]", ".enqueuedAt" => "[date]" }), @r###" { - "taskUid": 0, + "taskUid": "[task_uid]", "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", @@ -440,9 +440,9 @@ async fn force_different_locales_with_pattern() { }), ) .await; - snapshot!(response, @r###" + snapshot!(json_string!(response, { ".taskUid" => "[task_uid]", ".enqueuedAt" => "[date]" }), @r###" { - "taskUid": 0, + "taskUid": "[task_uid]", "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", @@ -518,9 +518,9 @@ async fn auto_infer_locales_at_search_with_attributes_to_search_on() { }), ) .await; - snapshot!(response, @r###" + snapshot!(json_string!(response, { ".taskUid" => "[task_uid]", ".enqueuedAt" => "[date]" }), @r###" { - "taskUid": 0, + "taskUid": "[task_uid]", "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", @@ -592,9 +592,9 @@ async fn auto_infer_locales_at_search() { }), ) .await; - snapshot!(response, @r###" + snapshot!(json_string!(response, { ".taskUid" => "[task_uid]", ".enqueuedAt" => "[date]" }), @r###" { - "taskUid": 0, + "taskUid": "[task_uid]", "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", @@ -691,9 +691,9 @@ async fn force_different_locales_with_pattern_nested() { ] })) .await; - snapshot!(response, @r###" + snapshot!(json_string!(response, { ".taskUid" => "[task_uid]", ".enqueuedAt" => "[date]" }), @r###" { - "taskUid": 0, + "taskUid": "[task_uid]", "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", @@ -789,9 +789,9 @@ async fn settings_change() { ] })) .await; - snapshot!(response, @r###" + snapshot!(json_string!(response, { ".taskUid" => "[task_uid]", ".enqueuedAt" => "[date]" }), @r###" { - "taskUid": 1, + "taskUid": "[task_uid]", "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", @@ -852,9 +852,9 @@ async fn settings_change() { ] })) .await; - snapshot!(response, @r###" + snapshot!(json_string!(response, { ".taskUid" => "[task_uid]", ".enqueuedAt" => "[date]" }), @r###" { - "taskUid": 2, + "taskUid": "[task_uid]", "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", @@ -1024,9 +1024,9 @@ async fn simple_facet_search() { "filterableAttributes": ["name_en", "name_ja", "name_zh"], })) .await; - snapshot!(response, @r###" + snapshot!(json_string!(response, { ".taskUid" => "[task_uid]", ".enqueuedAt" => "[date]" }), @r###" { - "taskUid": 0, + "taskUid": "[task_uid]", "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate", @@ -1086,9 +1086,9 @@ async fn facet_search_with_localized_attributes() { ] })) .await; - snapshot!(response, @r###" + snapshot!(json_string!(response, { ".taskUid" => "[task_uid]", ".enqueuedAt" => "[date]" }), @r###" { - "taskUid": 0, + "taskUid": "[task_uid]", "indexUid": "[uuid]", "status": "enqueued", "type": "settingsUpdate",