mirror of
https://github.com/meilisearch/meilisearch.git
synced 2025-02-17 08:10:14 +08:00
test delete documents
This commit is contained in:
parent
c95bf0cdf0
commit
d3758b6f76
@ -68,7 +68,7 @@ impl Index<'_> {
|
|||||||
self.service.put(url, documents).await
|
self.service.put(url, documents).await
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn wait_update_id(&self, update_id: u64) {
|
pub async fn wait_update_id(&self, update_id: u64) -> Value {
|
||||||
// try 10 times to get status, or panic to not wait forever
|
// try 10 times to get status, or panic to not wait forever
|
||||||
let url = format!("/indexes/{}/updates/{}", self.uid, update_id);
|
let url = format!("/indexes/{}/updates/{}", self.uid, update_id);
|
||||||
for _ in 0..10 {
|
for _ in 0..10 {
|
||||||
@ -76,7 +76,7 @@ impl Index<'_> {
|
|||||||
assert_eq!(status_code, 200);
|
assert_eq!(status_code, 200);
|
||||||
|
|
||||||
if response["status"] == "processed" || response["status"] == "failed" {
|
if response["status"] == "processed" || response["status"] == "failed" {
|
||||||
return;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
delay_for(Duration::from_secs(1)).await;
|
delay_for(Duration::from_secs(1)).await;
|
||||||
@ -116,6 +116,16 @@ impl Index<'_> {
|
|||||||
|
|
||||||
self.service.get(url).await
|
self.service.get(url).await
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub async fn delete_document(&self, id: u64) -> (Value, StatusCode) {
|
||||||
|
let url = format!("/indexes/{}/documents/{}", self.uid, id);
|
||||||
|
self.service.delete(url).await
|
||||||
|
}
|
||||||
|
|
||||||
|
pub async fn clear_all_documents(&self) -> (Value, StatusCode) {
|
||||||
|
let url = format!("/indexes/{}/documents", self.uid);
|
||||||
|
self.service.delete(url).await
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct GetDocumentOptions;
|
pub struct GetDocumentOptions;
|
||||||
|
72
tests/documents/delete_documents.rs
Normal file
72
tests/documents/delete_documents.rs
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
use serde_json::json;
|
||||||
|
|
||||||
|
use crate::common::{Server, GetAllDocumentsOptions};
|
||||||
|
|
||||||
|
#[actix_rt::test]
|
||||||
|
async fn delete_one_document_unexisting_index() {
|
||||||
|
let server = Server::new().await;
|
||||||
|
let (_response, code) = server.index("test").delete_document(0).await;
|
||||||
|
assert_eq!(code, 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[actix_rt::test]
|
||||||
|
async fn delete_one_unexisting_document() {
|
||||||
|
let server = Server::new().await;
|
||||||
|
let index = server.index("test");
|
||||||
|
index.create(None).await;
|
||||||
|
let (_response, code) = index.delete_document(0).await;
|
||||||
|
assert_eq!(code, 200);
|
||||||
|
let update = index.wait_update_id(0).await;
|
||||||
|
assert_eq!(update["status"], "processed");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[actix_rt::test]
|
||||||
|
async fn delete_one_document() {
|
||||||
|
let server = Server::new().await;
|
||||||
|
let index = server.index("test");
|
||||||
|
index.add_documents(json!([{ "id": 0, "content": "foobar" }]), None).await;
|
||||||
|
index.wait_update_id(0).await;
|
||||||
|
let (_response, code) = server.index("test").delete_document(0).await;
|
||||||
|
assert_eq!(code, 200);
|
||||||
|
|
||||||
|
let (_response, code) = index.get_document(0, None).await;
|
||||||
|
assert_eq!(code, 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[actix_rt::test]
|
||||||
|
async fn clear_all_documents_unexisting_index() {
|
||||||
|
let server = Server::new().await;
|
||||||
|
let (_response, code) = server.index("test").clear_all_documents().await;
|
||||||
|
assert_eq!(code, 400);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#[actix_rt::test]
|
||||||
|
async fn clear_all_documents() {
|
||||||
|
let server = Server::new().await;
|
||||||
|
let index = server.index("test");
|
||||||
|
index.add_documents(json!([{ "id": 1, "content": "foobar" }, { "id": 0, "content": "foobar" }]), None).await;
|
||||||
|
index.wait_update_id(0).await;
|
||||||
|
let (_response, code) = index.clear_all_documents().await;
|
||||||
|
assert_eq!(code, 200);
|
||||||
|
|
||||||
|
let _update = index.wait_update_id(0).await;
|
||||||
|
let (response, code) = index.get_all_documents(GetAllDocumentsOptions::default()).await;
|
||||||
|
assert_eq!(code, 200);
|
||||||
|
assert!(response.as_array().unwrap().is_empty());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[actix_rt::test]
|
||||||
|
async fn clear_all_documents_empty_index() {
|
||||||
|
let server = Server::new().await;
|
||||||
|
let index = server.index("test");
|
||||||
|
index.create(None).await;
|
||||||
|
|
||||||
|
let (_response, code) = index.clear_all_documents().await;
|
||||||
|
assert_eq!(code, 200);
|
||||||
|
|
||||||
|
let _update = index.wait_update_id(0).await;
|
||||||
|
let (response, code) = index.get_all_documents(GetAllDocumentsOptions::default()).await;
|
||||||
|
assert_eq!(code, 200);
|
||||||
|
assert!(response.as_array().unwrap().is_empty());
|
||||||
|
}
|
@ -1,2 +1,3 @@
|
|||||||
mod add_documents;
|
mod add_documents;
|
||||||
mod get_documents;
|
mod get_documents;
|
||||||
|
mod delete_documents;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user