use super::*;
fn admin_token() -> String {
let id = uuid::Uuid::now_v7().to_string();
make_token(&id, 1, raisfast::models::user::UserRole::Admin)
}
#[tokio::test]
async fn public_options_empty() {
let (mut app, _) = test_app().await;
let (status, body) = send(&mut app, get_req("/api/v1/options/public")).await;
assert!(status.is_success(), "public options: {status} {body:?}");
assert_eq!(body["code"], 0);
}
#[tokio::test]
async fn list_options_empty() {
let (mut app, _) = test_app().await;
let tok = admin_token();
let (status, body) = send(&mut app, get_auth("/api/v1/admin/options", &tok)).await;
assert!(status.is_success(), "list options: {status} {body:?}");
assert_eq!(body["code"], 0);
}
#[tokio::test]
async fn set_get_delete_option() {
let (mut app, _) = test_app().await;
let tok = admin_token();
let key = format!("test.{}", uuid::Uuid::now_v7());
let (status, body) = send(
&mut app,
put_json_auth(
&format!("/api/v1/admin/options/{key}"),
json!({"value": "Test Value"}),
&tok,
),
)
.await;
assert!(status.is_success(), "set option: {status} {body:?}");
let (status, _body) = send(
&mut app,
delete_auth(&format!("/api/v1/admin/options/{key}"), &tok),
)
.await;
assert!(status.is_success(), "delete option: {status}");
}
#[tokio::test]
async fn batch_update_options() {
let (mut app, _) = test_app().await;
let tok = admin_token();
let key1 = format!("test.{}", &uuid::Uuid::now_v7().to_string()[..8]);
let key2 = format!("test.{}", &uuid::Uuid::now_v7().to_string()[..8]);
let (status, body) = send(
&mut app,
put_json_auth(
"/api/v1/admin/options",
json!({"options": {key1: "Val1", key2: "Val2"}}),
&tok,
),
)
.await;
assert!(status.is_success(), "batch update: {status} {body:?}");
}