test get settings

This commit is contained in:
mpostma 2021-02-24 09:30:51 +01:00
parent ac89c35edc
commit c7ab4dccc3
No known key found for this signature in database
GPG Key ID: CBC8A7C1D7A28C3A
4 changed files with 99 additions and 1 deletions

View File

@ -131,6 +131,16 @@ impl Index<'_> {
let url = format!("/indexes/{}/documents/delete-batch", self.uid);
self.service.post(url, serde_json::to_value(&ids).unwrap()).await
}
pub async fn settings(&self) -> (Value, StatusCode) {
let url = format!("/indexes/{}/settings", self.uid);
self.service.get(url).await
}
pub async fn update_settings(&self, settings: Value) -> (Value, StatusCode) {
let url = format!("/indexes/{}/settings", self.uid);
self.service.post(url, settings).await
}
}
pub struct GetDocumentOptions;

View File

@ -10,7 +10,7 @@ use super::index::Index;
use super::service::Service;
pub struct Server {
service: Service,
pub service: Service,
}
impl Server {

View File

@ -0,0 +1,87 @@
use crate::common::Server;
use serde_json::json;
#[actix_rt::test]
async fn get_settings_unexisting_index() {
let server = Server::new().await;
let (_response, code) = server.index("test").settings().await;
assert_eq!(code, 400)
}
#[actix_rt::test]
async fn get_settings() {
let server = Server::new().await;
let index = server.index("test");
index.create(None).await;
let (response, code) = index.settings().await;
assert_eq!(code, 200);
let settings = response.as_object().unwrap();
assert_eq!(settings.keys().len(), 3);
assert_eq!(settings["displayedAttributes"], json!(["*"]));
assert_eq!(settings["searchableAttributes"], json!(["*"]));
assert_eq!(settings["facetedAttributes"], json!({}));
}
#[actix_rt::test]
async fn update_setting_unexisting_index() {
let server = Server::new().await;
let index = server.index("test");
let (_response, code) = index.update_settings(json!({})).await;
assert_eq!(code, 200);
let (_response, code) = index.get().await;
assert_eq!(code, 200);
}
macro_rules! test_setting_routes {
($($setting:ident), *) => {
$(
mod $setting {
use crate::common::Server;
#[actix_rt::test]
async fn get_unexisting_index() {
let server = Server::new().await;
let url = format!("/indexes/test/settings/{}",
stringify!($setting)
.chars()
.map(|c| if c == '_' { '-' } else { c })
.collect::<String>());
let (_response, code) = server.service.get(url).await;
assert_eq!(code, 400);
}
#[actix_rt::test]
async fn update_unexisting_index() {
let server = Server::new().await;
let url = format!("/indexes/test/settings/{}",
stringify!($setting)
.chars()
.map(|c| if c == '_' { '-' } else { c })
.collect::<String>());
let (_response, code) = server.service.post(url, serde_json::Value::Null).await;
assert_eq!(code, 200);
let (_response, code) = server.index("test").get().await;
assert_eq!(code, 200);
}
#[actix_rt::test]
#[ignore]
async fn delete_unexisting_index() {
let server = Server::new().await;
let url = format!("/indexes/test/settings/{}",
stringify!($setting)
.chars()
.map(|c| if c == '_' { '-' } else { c })
.collect::<String>());
let (_response, code) = server.service.delete(url).await;
assert_eq!(code, 400);
}
}
)*
};
}
test_setting_routes!(
attributes_for_faceting,
displayed_attributes,
searchable_attributes);

1
tests/settings/mod.rs Normal file
View File

@ -0,0 +1 @@
mod get_settings;