use axum::body::Body;
use axum::extract::Request;
use axum::http::StatusCode;
use larust_db::DbPlugin;
use tower::ServiceExt;
#[tokio::test]
async fn dashboard_mounts_at_the_configured_path_instead_of_the_default() {
std::env::set_var("DB_DASHBOARD_PATH", "/admin/embedded-store/");
std::env::set_var("DB_DASHBOARD_PASSWORD", "s3cret");
let dir = tempfile::tempdir().unwrap().keep();
let database_url = format!("sqlite://{}/test.sqlite", dir.display());
larust_orm::connect(&database_url).await.unwrap();
let pool = larust_orm::pool().unwrap().clone();
let router = larust_http::Router::new()
.plugin(DbPlugin)
.with_sessions(&pool, false)
.await
.unwrap()
.into_axum_router();
let db_dir = tempfile::tempdir().unwrap();
larust_db::connect(db_dir.path().join("test.redb"))
.await
.unwrap();
let response = router
.clone()
.oneshot(
Request::get("/admin/embedded-store")
.body(Body::empty())
.unwrap(),
)
.await
.unwrap();
assert!(response.status().is_redirection());
let response = router
.oneshot(Request::get("/xr-db").body(Body::empty()).unwrap())
.await
.unwrap();
assert_eq!(response.status(), StatusCode::NOT_FOUND);
}