use actix_web::Responder;
pub async fn handler() -> impl Responder {
"OK"
}
#[cfg(test)]
mod tests {
use super::*;
#[tokio::test]
async fn test_health_handler_returns_ok() {
let _response = handler().await;
}
#[tokio::test]
async fn test_health_handler_responds_to_request() {
use actix_web::{test, web, App};
let app = test::init_service(App::new().route("/health", web::get().to(handler))).await;
let req = test::TestRequest::get().uri("/health").to_request();
let resp = test::call_service(&app, req).await;
assert!(resp.status().is_success());
let body = test::read_body(resp).await;
assert_eq!(body.as_ref(), b"OK");
}
#[tokio::test]
async fn test_health_handler_returns_200_status() {
use actix_web::{test, web, App};
let app = test::init_service(App::new().route("/health", web::get().to(handler))).await;
let req = test::TestRequest::get().uri("/health").to_request();
let resp = test::call_service(&app, req).await;
assert_eq!(resp.status(), 200);
}
#[tokio::test]
async fn test_health_handler_content_type() {
use actix_web::{test, web, App};
let app = test::init_service(App::new().route("/health", web::get().to(handler))).await;
let req = test::TestRequest::get().uri("/health").to_request();
let resp = test::call_service(&app, req).await;
let content_type = resp.headers().get("content-type");
assert!(content_type.is_some());
let content_type_str = content_type.unwrap().to_str().unwrap();
assert!(content_type_str.starts_with("text/plain"));
}
#[tokio::test]
async fn test_health_handler_multiple_requests() {
use actix_web::{test, web, App};
let app = test::init_service(App::new().route("/health", web::get().to(handler))).await;
for _ in 0..10 {
let req = test::TestRequest::get().uri("/health").to_request();
let resp = test::call_service(&app, req).await;
assert!(resp.status().is_success());
let body = test::read_body(resp).await;
assert_eq!(body.as_ref(), b"OK");
}
}
}