From aedf4f47b55d625b3ed0589745c4cebb7009a98e Mon Sep 17 00:00:00 2001 From: ManyTheFish Date: Wed, 27 Nov 2024 11:51:01 +0100 Subject: [PATCH] Add test --- crates/meilisearch/tests/search/geo.rs | 67 ++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/crates/meilisearch/tests/search/geo.rs b/crates/meilisearch/tests/search/geo.rs index e92056191..5bc93a339 100644 --- a/crates/meilisearch/tests/search/geo.rs +++ b/crates/meilisearch/tests/search/geo.rs @@ -184,3 +184,70 @@ async fn bug_4640() { ) .await; } + +#[actix_rt::test] +async fn bug_4640_inverted() { + // https://github.com/meilisearch/meilisearch/issues/4640 + let server = Server::new().await; + let index = server.index("test"); + + index.update_settings_filterable_attributes(json!(["_geo"])).await; + index.update_settings_sortable_attributes(json!(["_geo"])).await; + let documents = DOCUMENTS.clone(); + let (ret, _code) = index.add_documents(documents, None).await; + index.wait_task(ret.uid()).await; + + // Sort the document with the second one first + index + .search( + json!({ + "sort": ["_geoPoint(45.4777599, 9.1967508):asc"], + }), + |response, code| { + assert_eq!(code, 200, "{}", response); + snapshot!(json_string!(response, { ".processingTimeMs" => "[time]" }), @r###" + { + "hits": [ + { + "id": 2, + "name": "La Bella Italia", + "address": "456 Elm Street, Townsville", + "type": "Italian", + "rating": 9, + "_geo": { + "lat": "45.4777599", + "lng": "9.1967508" + }, + "_geoDistance": 0 + }, + { + "id": 1, + "name": "Taco Truck", + "address": "444 Salsa Street, Burritoville", + "type": "Mexican", + "rating": 9, + "_geo": { + "lat": 34.0522, + "lng": -118.2437 + }, + "_geoDistance": 9714063 + }, + { + "id": 3, + "name": "Crêpe Truck", + "address": "2 Billig Avenue, Rouenville", + "type": "French", + "rating": 10 + } + ], + "query": "", + "processingTimeMs": "[time]", + "limit": 20, + "offset": 0, + "estimatedTotalHits": 3 + } + "###); + }, + ) + .await; +}