#![allow(
clippy::missing_docs_in_private_items,
reason = "test helpers and fixtures do not need doc comments"
)]
use axum::{
body::Body,
http::{Request, StatusCode},
};
use tower::ServiceExt;
use crate::routes::http::build_app;
#[tokio::test]
async fn build_app_shutdown_route_acknowledges() {
let app = build_app(crate::routines::new_store());
let resp = app
.oneshot(
Request::builder()
.method("POST")
.uri("/api/v1/shutdown")
.body(Body::empty())
.unwrap(),
)
.await
.unwrap();
assert_eq!(resp.status(), StatusCode::OK);
let bytes = axum::body::to_bytes(resp.into_body(), usize::MAX)
.await
.unwrap();
let json: serde_json::Value = serde_json::from_slice(&bytes).unwrap();
assert_eq!(json["status"], "shutting down");
}