From 556ba956b89de3069db89198d3ade95f509df625 Mon Sep 17 00:00:00 2001 From: mpostma Date: Fri, 19 Feb 2021 19:14:25 +0100 Subject: [PATCH] test get empty index list --- tests/common/server.rs | 433 +-------------------------------------- tests/index/get_index.rs | 9 + 2 files changed, 14 insertions(+), 428 deletions(-) diff --git a/tests/common/server.rs b/tests/common/server.rs index 30d6c40fd..630bb2791 100644 --- a/tests/common/server.rs +++ b/tests/common/server.rs @@ -1,5 +1,7 @@ use tempdir::TempDir; use byte_unit::{Byte, ByteUnit}; +use serde_json::Value; +use actix_web::http::StatusCode; use meilisearch_http::data::Data; use meilisearch_http::option::{Opt, IndexerOpts}; @@ -51,134 +53,6 @@ impl Server { } } - //pub async fn test_server() -> Self { - //let mut server = Self::new(); - - //let body = json!({ - //"uid": "test", - //"primaryKey": "id", - //}); - - //server.create_index(body).await; - - //let body = json!({ - ////"rankingRules": [ - ////"typo", - ////"words", - ////"proximity", - ////"attribute", - ////"wordsPosition", - ////"exactness", - ////], - //"searchableAttributes": [ - //"balance", - //"picture", - //"age", - //"color", - //"name", - //"gender", - //"email", - //"phone", - //"address", - //"about", - //"registered", - //"latitude", - //"longitude", - //"tags", - //], - //"displayedAttributes": [ - //"id", - //"isActive", - //"balance", - //"picture", - //"age", - //"color", - //"name", - //"gender", - //"email", - //"phone", - //"address", - //"about", - //"registered", - //"latitude", - //"longitude", - //"tags", - //], - //}); - - //server.update_all_settings(body).await; - - //let dataset = include_bytes!("../assets/test_set.json"); - - //let body: Value = serde_json::from_slice(dataset).unwrap(); - - //server.add_or_replace_multiple_documents(body).await; - //server - //} - - //pub fn data(&self) -> &Data { - //&self.data - //} - - //pub async fn wait_update_id(&mut self, update_id: u64) { - //// try 10 times to get status, or panic to not wait forever - //for _ in 0..10 { - //let (response, status_code) = self.get_update_status(update_id).await; - //assert_eq!(status_code, 200); - - //if response["status"] == "processed" || response["status"] == "failed" { - //// eprintln!("{:#?}", response); - //return; - //} - - //delay_for(Duration::from_secs(1)).await; - //} - //panic!("Timeout waiting for update id"); - //} - - // Global Http request GET/POST/DELETE async or sync - - //pub async fn post_request_async(&mut self, url: &str, body: Value) -> (Value, StatusCode) { - //eprintln!("post_request_async: {}", url); - - //let (response, status_code) = self.post_request(url, body).await; - //eprintln!("response: {}", response); - //assert!(response["updateId"].as_u64().is_some()); - //self.wait_update_id(response["updateId"].as_u64().unwrap()) - //.await; - //(response, status_code) - //} - - - //pub async fn put_request_async(&mut self, url: &str, body: Value) -> (Value, StatusCode) { - //eprintln!("put_request_async: {}", url); - - //let (response, status_code) = self.put_request(url, body).await; - //assert!(response["updateId"].as_u64().is_some()); - //assert_eq!(status_code, 202); - //self.wait_update_id(response["updateId"].as_u64().unwrap()) - //.await; - //(response, status_code) - //} - - - //pub async fn delete_request_async(&mut self, url: &str) -> (Value, StatusCode) { - //eprintln!("delete_request_async: {}", url); - - //let (response, status_code) = self.delete_request(url).await; - //assert!(response["updateId"].as_u64().is_some()); - //assert_eq!(status_code, 202); - //self.wait_update_id(response["updateId"].as_u64().unwrap()) - //.await; - //(response, status_code) - //} - - // All Routes - - //pub async fn list_indexes(&mut self) -> (Value, StatusCode) { - //self.get_request("/indexes").await - //} - /// Returns a view to an index. There is no guarantee that the index exists. pub fn index<'a>(&'a self, uid: impl AsRef) -> Index<'a> { Index { @@ -186,305 +60,8 @@ impl Server { service: &self.service, } } - //pub async fn search_multi_index(&mut self, query: &str) -> (Value, StatusCode) { - //let url = format!("/indexes/search?{}", query); - //self.get_request(&url).await - //} - //pub async fn get_index(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}", self.uid); - //self.get_request(&url).await - //} - - //pub async fn update_index(&mut self, body: Value) -> (Value, StatusCode) { - //let url = format!("/indexes/{}", self.uid); - //self.put_request(&url, body).await - //} - - //pub async fn delete_index(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}", self.uid); - //self.delete_request(&url).await - //} - - //pub async fn search_get(&mut self, query: &str) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/search?{}", self.uid, query); - //self.get_request(&url).await - //} - - //pub async fn search_post(&mut self, body: Value) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/search", self.uid); - //self.post_request(&url, body).await - //} - - //pub async fn get_all_updates_status(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/updates", self.uid); - //self.get_request(&url).await - //} - - //pub async fn get_update_status(&mut self, update_id: u64) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/updates/{}", self.uid, update_id); - //self.get_request(&url).await - //} - - //pub async fn get_all_documents(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/documents", self.uid); - //self.get_request(&url).await - //} - - //pub async fn add_or_replace_multiple_documents(&mut self, body: Value) { - //let url = format!("/indexes/{}/documents", self.uid); - //self.post_request_async(&url, body).await; - //} - - //pub async fn add_or_replace_multiple_documents_sync( - //&mut self, - //body: Value, - //) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/documents", self.uid); - //self.post_request(&url, body).await - //} - - //pub async fn add_or_update_multiple_documents(&mut self, body: Value) { - //let url = format!("/indexes/{}/documents", self.uid); - //self.put_request_async(&url, body).await; - //} - - //pub async fn clear_all_documents(&mut self) { - //let url = format!("/indexes/{}/documents", self.uid); - //self.delete_request_async(&url).await; - //} - - //pub async fn get_document(&mut self, document_id: impl ToString) -> (Value, StatusCode) { - //let url = format!( - //"/indexes/{}/documents/{}", - //self.uid, - //document_id.to_string() - //); - //self.get_request(&url).await - //} - - //pub async fn delete_document(&mut self, document_id: impl ToString) -> (Value, StatusCode) { - //let url = format!( - //"/indexes/{}/documents/{}", - //self.uid, - //document_id.to_string() - //); - //self.delete_request_async(&url).await - //} - - //pub async fn delete_multiple_documents(&mut self, body: Value) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/documents/delete-batch", self.uid); - //self.post_request_async(&url, body).await - //} - - //pub async fn get_all_settings(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings", self.uid); - //self.get_request(&url).await - //} - - //pub async fn update_all_settings(&mut self, body: Value) { - //let url = format!("/indexes/{}/settings", self.uid); - //self.post_request_async(&url, body).await; - //} - - //pub async fn update_all_settings_sync(&mut self, body: Value) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings", self.uid); - //self.post_request(&url, body).await - //} - - //pub async fn delete_all_settings(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings", self.uid); - //self.delete_request_async(&url).await - //} - - //pub async fn get_ranking_rules(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/ranking-rules", self.uid); - //self.get_request(&url).await - //} - - //pub async fn update_ranking_rules(&mut self, body: Value) { - //let url = format!("/indexes/{}/settings/ranking-rules", self.uid); - //self.post_request_async(&url, body).await; - //} - - //pub async fn update_ranking_rules_sync(&mut self, body: Value) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/ranking-rules", self.uid); - //self.post_request(&url, body).await - //} - - //pub async fn delete_ranking_rules(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/ranking-rules", self.uid); - //self.delete_request_async(&url).await - //} - - //pub async fn get_distinct_attribute(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/distinct-attribute", self.uid); - //self.get_request(&url).await - //} - - //pub async fn update_distinct_attribute(&mut self, body: Value) { - //let url = format!("/indexes/{}/settings/distinct-attribute", self.uid); - //self.post_request_async(&url, body).await; - //} - - //pub async fn update_distinct_attribute_sync(&mut self, body: Value) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/distinct-attribute", self.uid); - //self.post_request(&url, body).await - //} - - //pub async fn delete_distinct_attribute(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/distinct-attribute", self.uid); - //self.delete_request_async(&url).await - //} - - //pub async fn get_primary_key(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/primary_key", self.uid); - //self.get_request(&url).await - //} - - //pub async fn get_searchable_attributes(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/searchable-attributes", self.uid); - //self.get_request(&url).await - //} - - //pub async fn update_searchable_attributes(&mut self, body: Value) { - //let url = format!("/indexes/{}/settings/searchable-attributes", self.uid); - //self.post_request_async(&url, body).await; - //} - - //pub async fn update_searchable_attributes_sync(&mut self, body: Value) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/searchable-attributes", self.uid); - //self.post_request(&url, body).await - //} - - //pub async fn delete_searchable_attributes(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/searchable-attributes", self.uid); - //self.delete_request_async(&url).await - //} - - //pub async fn get_displayed_attributes(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/displayed-attributes", self.uid); - //self.get_request(&url).await - //} - - //pub async fn update_displayed_attributes(&mut self, body: Value) { - //let url = format!("/indexes/{}/settings/displayed-attributes", self.uid); - //self.post_request_async(&url, body).await; - //} - - //pub async fn update_displayed_attributes_sync(&mut self, body: Value) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/displayed-attributes", self.uid); - //self.post_request(&url, body).await - //} - - //pub async fn delete_displayed_attributes(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/displayed-attributes", self.uid); - //self.delete_request_async(&url).await - //} - - //pub async fn get_attributes_for_faceting(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/attributes-for-faceting", self.uid); - //self.get_request(&url).await - //} - - //pub async fn update_attributes_for_faceting(&mut self, body: Value) { - //let url = format!("/indexes/{}/settings/attributes-for-faceting", self.uid); - //self.post_request_async(&url, body).await; - //} - - //pub async fn update_attributes_for_faceting_sync( - //&mut self, - //body: Value, - //) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/attributes-for-faceting", self.uid); - //self.post_request(&url, body).await - //} - - //pub async fn delete_attributes_for_faceting(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/attributes-for-faceting", self.uid); - //self.delete_request_async(&url).await - //} - - //pub async fn get_synonyms(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/synonyms", self.uid); - //self.get_request(&url).await - //} - - //pub async fn update_synonyms(&mut self, body: Value) { - //let url = format!("/indexes/{}/settings/synonyms", self.uid); - //self.post_request_async(&url, body).await; - //} - - //pub async fn update_synonyms_sync(&mut self, body: Value) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/synonyms", self.uid); - //self.post_request(&url, body).await - //} - - //pub async fn delete_synonyms(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/synonyms", self.uid); - //self.delete_request_async(&url).await - //} - - //pub async fn get_stop_words(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/stop-words", self.uid); - //self.get_request(&url).await - //} - - //pub async fn update_stop_words(&mut self, body: Value) { - //let url = format!("/indexes/{}/settings/stop-words", self.uid); - //self.post_request_async(&url, body).await; - //} - - //pub async fn update_stop_words_sync(&mut self, body: Value) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/stop-words", self.uid); - //self.post_request(&url, body).await - //} - - //pub async fn delete_stop_words(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/settings/stop-words", self.uid); - //self.delete_request_async(&url).await - //} - - //pub async fn get_index_stats(&mut self) -> (Value, StatusCode) { - //let url = format!("/indexes/{}/stats", self.uid); - //self.get_request(&url).await - //} - - //pub async fn list_keys(&mut self) -> (Value, StatusCode) { - //self.get_request("/keys").await - //} - - //pub async fn get_health(&mut self) -> (Value, StatusCode) { - //self.get_request("/health").await - //} - - //pub async fn update_health(&mut self, body: Value) -> (Value, StatusCode) { - //self.put_request("/health", body).await - //} - - //pub async fn get_version(&mut self) -> (Value, StatusCode) { - //self.get_request("/version").await - //} - - //pub async fn get_sys_info(&mut self) -> (Value, StatusCode) { - //self.get_request("/sys-info").await - //} - - //pub async fn get_sys_info_pretty(&mut self) -> (Value, StatusCode) { - //self.get_request("/sys-info/pretty").await - //} - - //pub async fn trigger_dump(&self) -> (Value, StatusCode) { - //self.post_request("/dumps", Value::Null).await - //} - - //pub async fn get_dump_status(&mut self, dump_uid: &str) -> (Value, StatusCode) { - //let url = format!("/dumps/{}/status", dump_uid); - //self.get_request(&url).await - //} - - //pub async fn trigger_dump_importation(&mut self, dump_uid: &str) -> (Value, StatusCode) { - //let url = format!("/dumps/{}/import", dump_uid); - //self.get_request(&url).await - //} + pub async fn list_indexes(&self) -> (Value, StatusCode) { + self.service.get("/indexes").await + } } diff --git a/tests/index/get_index.rs b/tests/index/get_index.rs index 8b0f27441..c69f4b2a8 100644 --- a/tests/index/get_index.rs +++ b/tests/index/get_index.rs @@ -32,3 +32,12 @@ async fn get_unexisting_index() { assert_eq!(code, 400); } + +#[actix_rt::test] +async fn no_index_return_empty_list() { + let server = Server::new().await; + let (response, code) = server.list_indexes().await; + assert_eq!(code, 200); + assert!(response.is_array()); + assert!(response.as_array().unwrap().is_empty()); +}