use axum::body::Body;
use axum::http::{Request, StatusCode};
use tempfile::TempDir;
use tower::ServiceExt;
fn make_app() -> (axum::Router, TempDir) {
let td = TempDir::new().expect("tmp dir");
let opts = mnem_http::AppOptions {
allow_labels: Some(true),
in_memory: false,
metrics_enabled: false,
};
let app = mnem_http::app_with_options(td.path(), opts).expect("build app");
(app, td)
}
#[tokio::test]
async fn traverse_answer_route_is_registered_default_gated() {
let (app, _td) = make_app();
let body = serde_json::json!({ "text": "x" });
let resp = app
.oneshot(
Request::builder()
.method("POST")
.uri("/v1/traverse_answer")
.header("content-type", "application/json")
.body(Body::from(body.to_string()))
.unwrap(),
)
.await
.expect("send request");
assert_ne!(
resp.status(),
StatusCode::NOT_FOUND,
"traverse_answer should be wired into the router"
);
assert_eq!(resp.status(), StatusCode::GONE);
}