diff options
author | Toby Vincent <tobyv@tobyvin.dev> | 2024-04-11 22:44:07 -0500 |
---|---|---|
committer | Toby Vincent <tobyv@tobyvin.dev> | 2024-04-11 23:51:19 -0500 |
commit | a20f3667a88affa0498e564cea17e9e795162bb8 (patch) | |
tree | 29797241f1bce86193a733f8cfdc49121f91ddad /src/api.rs | |
parent | 61acc1f6e418d1d6947658424115af994a2689dd (diff) |
feat: impl auth and modularize routers
Diffstat (limited to 'src/api.rs')
-rw-r--r-- | src/api.rs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/api.rs b/src/api.rs new file mode 100644 index 0000000..0a6b8e0 --- /dev/null +++ b/src/api.rs @@ -0,0 +1,45 @@ +use axum::{response::IntoResponse, routing::get}; + +use crate::state::AppState; + +mod users; + +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(()) + } +} |