use axum::{response::IntoResponse, routing::get}; use crate::state::AppState; mod users; pub mod error; pub fn router(state: AppState) -> axum::Router { axum::Router::new() .merge(users::router()) .route("/healthcheck", get(healthcheck)) .with_state(state) } pub async fn healthcheck() -> impl IntoResponse { "success" } #[cfg(test)] mod tests { use crate::tests::{setup_test_env, TestResult}; use super::*; use axum::{ body::Body, http::{Request, StatusCode}, }; use sqlx::PgPool; use tower::ServiceExt; #[sqlx::test] async fn test_healthcheck_ok(pool: PgPool) -> TestResult { setup_test_env(); let router = router(AppState { pool }); let request = Request::builder().uri("/healthcheck").body(Body::empty())?; let response = router.oneshot(request).await?; assert_eq!(StatusCode::OK, response.status()); Ok(()) } }