42 lines
1.1 KiB
Rust
42 lines
1.1 KiB
Rust
use api::{AppState, build_app};
|
|
use axum::body::Body;
|
|
use axum::http::{Request, StatusCode};
|
|
use http_body_util::BodyExt;
|
|
use sqlx::PgPool;
|
|
use tower::ServiceExt;
|
|
|
|
fn state(pool: PgPool) -> AppState {
|
|
AppState {
|
|
db: db::Db::from_pool(pool),
|
|
app_name: "Test Museum".into(),
|
|
cookie_secure: false,
|
|
search: None,
|
|
default_language: "sv".into(),
|
|
default_timezone: "Europe/Stockholm".into(),
|
|
}
|
|
}
|
|
|
|
#[sqlx::test(migrations = "../db/migrations")]
|
|
async fn config_is_public_and_reflects_state(pool: PgPool) {
|
|
let app = build_app(state(pool));
|
|
|
|
let resp = app
|
|
.oneshot(
|
|
Request::builder()
|
|
.uri("/api/config")
|
|
.body(Body::empty())
|
|
.unwrap(),
|
|
)
|
|
.await
|
|
.unwrap();
|
|
|
|
assert_eq!(resp.status(), StatusCode::OK);
|
|
|
|
let body: serde_json::Value =
|
|
serde_json::from_slice(&resp.into_body().collect().await.unwrap().to_bytes()).unwrap();
|
|
|
|
assert_eq!(body["app_name"], "Test Museum");
|
|
assert_eq!(body["default_language"], "sv");
|
|
assert_eq!(body["default_timezone"], "Europe/Stockholm");
|
|
}
|