From e5f72711c5a17c5db24e209b14f82d426eceb86e Mon Sep 17 00:00:00 2001 From: Owen Jacobson Date: Thu, 19 Sep 2024 01:25:31 -0400 Subject: Write tests. --- src/channel/routes.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'src/channel/routes.rs') diff --git a/src/channel/routes.rs b/src/channel/routes.rs index 383ec58..674c876 100644 --- a/src/channel/routes.rs +++ b/src/channel/routes.rs @@ -17,14 +17,17 @@ use crate::{ }, }; +#[cfg(test)] +mod test; + pub fn router() -> Router { Router::new() - .route("/api/channels", get(list_channels)) + .route("/api/channels", get(list)) .route("/api/channels", post(on_create)) .route("/api/channels/:channel", post(on_send)) } -async fn list_channels(State(app): State, _: Login) -> Result { +async fn list(State(app): State, _: Login) -> Result { let channels = app.channels().all().await?; let response = Channels(channels); @@ -40,7 +43,7 @@ impl IntoResponse for Channels { } } -#[derive(serde::Deserialize)] +#[derive(Clone, serde::Deserialize)] struct CreateRequest { name: String, } @@ -59,6 +62,7 @@ async fn on_create( Ok(Json(channel)) } +#[derive(Debug)] struct CreateError(app::CreateError); impl IntoResponse for CreateError { @@ -73,20 +77,20 @@ impl IntoResponse for CreateError { } } -#[derive(serde::Deserialize)] +#[derive(Clone, serde::Deserialize)] struct SendRequest { message: String, } async fn on_send( + State(app): State, Path(channel): Path, RequestedAt(sent_at): RequestedAt, - State(app): State, login: Login, - Json(form): Json, + Json(request): Json, ) -> Result { app.channels() - .send(&login, &channel, &form.message, &sent_at) + .send(&login, &channel, &request.message, &sent_at) .await // Could impl `From` here, but it's more code and this is used once. .map_err(ErrorResponse)?; @@ -94,6 +98,7 @@ async fn on_send( Ok(StatusCode::ACCEPTED) } +#[derive(Debug)] struct ErrorResponse(EventsError); impl IntoResponse for ErrorResponse { -- cgit v1.2.3