diff --git a/meilisearch/tests/search/geo.rs b/meilisearch/tests/search/geo.rs index 5c6bb78a1..0169734c8 100644 --- a/meilisearch/tests/search/geo.rs +++ b/meilisearch/tests/search/geo.rs @@ -117,3 +117,61 @@ async fn geo_bounding_box_with_string_and_number() { ) .await; } + +#[actix_rt::test] +async fn bug_4640() { + // https://github.com/meilisearch/meilisearch/issues/4640 + let server = Server::new().await; + let index = server.index("test"); + + let documents = DOCUMENTS.clone(); + index.add_documents(documents, None).await; + index.update_settings_filterable_attributes(json!(["_geo"])).await; + let (ret, _code) = index.update_settings_sortable_attributes(json!(["_geo"])).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": 1, + "name": "Taco Truck", + "address": "444 Salsa Street, Burritoville", + "type": "Mexican", + "rating": 9, + "_geo": { + "lat": 34.0522, + "lng": -118.2437 + } + }, + { + "id": 2, + "name": "La Bella Italia", + "address": "456 Elm Street, Townsville", + "type": "Italian", + "rating": 9, + "_geo": { + "lat": "45.4777599", + "lng": "9.1967508" + } + } + ], + "query": "", + "processingTimeMs": "[time]", + "limit": 20, + "offset": 0, + "estimatedTotalHits": 2 + } + "###); + }, + ) + .await; +}