v0.0.2
RustBox CI / rustbox (push) Waiting to run

This commit is contained in:
Mateusz Gruszczyński committed 2026-10-29 20:04:58 +01:00
1 parent 31634543f0
commit a238ff5e23
2 files changed
+17 -11

No files matched your search

+9 -1
View File
@@ -502,7 +502,15 @@ pub fn create_router(
// Use the same base path for routing and authentication cookies.
let router = match config.normalized_base_path() {
"/" => inner,
base_path => Router::new().nest(base_path, inner),
base_path => {
// Axum nests an inner `/` route at the prefix itself (`/mail`),
// not at the trailing-slash variant (`/mail/`). Serve that variant
// explicitly so both URLs load the same embedded SPA.
let base_path_slash = format!("{}/", base_path.trim_end_matches('/'));
Router::new()
.route(&base_path_slash, get(crate::ui::serve_ui))
.nest(base_path, inner)
}
};
let router = router
+8 -10
View File
@@ -377,21 +377,19 @@ async fn base_path_serves_the_same_embedded_ui() {
test_idle_manager(),
);
for uri in ["/mail", "/mail/"] {
let response = app
.oneshot(
Request::builder()
.uri("/mail/")
.body(Body::empty())
.unwrap(),
)
.clone()
.oneshot(Request::builder().uri(uri).body(Body::empty()).unwrap())
.await
.unwrap();
assert_eq!(response.status(), StatusCode::OK);
assert_eq!(response.status(), StatusCode::OK, "{uri}");
let body = response.into_body().collect().await.unwrap().to_bytes();
let html = String::from_utf8(body.to_vec()).unwrap();
assert!(html.contains("data-base-path=\"/mail\""));
assert!(html.contains("/mail/assets/app."));
assert!(html.contains(".js"));
assert!(html.contains("data-base-path=\"/mail\""), "{uri}");
assert!(html.contains("/mail/assets/app."), "{uri}");
assert!(html.contains(".js"), "{uri}");
}
}
#[tokio::test]