#![allow(dead_code)]
use bytes::Bytes;
use http_body_util::BodyExt;
use hyper::{HeaderMap, Method, Response};
use mini_static::{ResponseBody, Server};
pub async fn body_bytes(response: Response<ResponseBody>) -> Bytes {
response
.into_body()
.collect()
.await
.expect("body collection is infallible")
.to_bytes()
}
pub async fn request(server: &Server, method: &Method, path: &str) -> Response<ResponseBody> {
server.handle_request(method, path, &HeaderMap::new()).await
}
pub async fn get(server: &Server, path: &str) -> Response<ResponseBody> {
request(server, &Method::GET, path).await
}
pub async fn request_with_headers(
server: &Server,
method: &Method,
path: &str,
headers: &[(&str, &str)],
) -> Response<ResponseBody> {
let mut map = HeaderMap::new();
for (name, value) in headers {
map.insert(
hyper::header::HeaderName::from_bytes(name.as_bytes()).expect("valid header name"),
value.parse().expect("valid header value"),
);
}
server.handle_request(method, path, &map).await
}