doido-controller 0.0.13

Action Controller + routing + Tower middleware for Doido: handlers, Context, responses, filters, routes! DSL, sessions, and middleware stacks.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use axum::body::Body;
use http::{Request, StatusCode};
use tower::ServiceExt;

#[tokio::test]
async fn redirect_route_301s_to_the_target() {
    let app = doido_controller::routes! {
        redirect!("/old", "/new");
    };

    let resp = app
        .oneshot(Request::builder().uri("/old").body(Body::empty()).unwrap())
        .await
        .unwrap();
    assert_eq!(resp.status(), StatusCode::MOVED_PERMANENTLY);
    assert_eq!(resp.headers().get("location").unwrap(), "/new");
}