diff --git a/crates/meilisearch/tests/common/index.rs b/crates/meilisearch/tests/common/index.rs index 24db6776b..e324d2ff5 100644 --- a/crates/meilisearch/tests/common/index.rs +++ b/crates/meilisearch/tests/common/index.rs @@ -294,6 +294,20 @@ impl Index<'_, Shared> { } (task, code) } + + pub async fn update_index_fail(&self, primary_key: Option<&str>) -> (Value, StatusCode) { + let (mut task, code) = self._update(primary_key).await; + if code.is_success() { + task = self.wait_task(task.uid()).await; + if task.is_success() { + panic!( + "`update_index_fail` succeeded: {}", + serde_json::to_string_pretty(&task).unwrap() + ); + } + } + (task, code) + } } #[allow(dead_code)] @@ -337,6 +351,14 @@ impl Index<'_, State> { self.service.post_encoded("/indexes", body, self.encoder).await } + pub(super) async fn _update(&self, primary_key: Option<&str>) -> (Value, StatusCode) { + let body = json!({ + "primaryKey": primary_key, + }); + let url = format!("/indexes/{}", urlencode(self.uid.as_ref())); + self.service.patch_encoded(url, body, self.encoder).await + } + pub(super) async fn _delete(&self) -> (Value, StatusCode) { let url = format!("/indexes/{}", urlencode(self.uid.as_ref())); self.service.delete(url).await diff --git a/crates/meilisearch/tests/index/update_index.rs b/crates/meilisearch/tests/index/update_index.rs index a17e7c63f..291700728 100644 --- a/crates/meilisearch/tests/index/update_index.rs +++ b/crates/meilisearch/tests/index/update_index.rs @@ -2,7 +2,7 @@ use time::format_description::well_known::Rfc3339; use time::OffsetDateTime; use crate::common::encoder::Encoder; -use crate::common::Server; +use crate::common::{shared_does_not_exists_index, shared_index_with_documents, Server}; use crate::json; #[actix_rt::test] @@ -69,24 +69,9 @@ async fn update_nothing() { #[actix_rt::test] async fn error_update_existing_primary_key() { - let server = Server::new_shared(); - let index = server.unique_index(); - let (create_task, code) = index.create(Some("id")).await; + let index = shared_index_with_documents().await; - assert_eq!(code, 202); - index.wait_task(create_task.uid()).await.succeeded(); - - let documents = json!([ - { - "id": "11", - "content": "foobar" - } - ]); - let (add_docs_task, add_docs_status_code) = index.add_documents(documents, None).await; - assert_eq!(add_docs_status_code, 202); - index.wait_task(add_docs_task.uid()).await.succeeded(); - - let (update_task, code) = index.update(Some("primary")).await; + let (update_task, code) = index.update_index_fail(Some("primary")).await; assert_eq!(code, 202); let response = index.wait_task(update_task.uid()).await.failed(); @@ -103,9 +88,8 @@ async fn error_update_existing_primary_key() { #[actix_rt::test] async fn error_update_unexisting_index() { - let server = Server::new_shared(); - let index = server.unique_index(); - let (task, code) = index.update(None).await; + let index = shared_does_not_exists_index().await; + let (task, code) = index.update_index_fail(Some("my-primary-key")).await; assert_eq!(code, 202);