Skip to main content

e2e_test

Macro e2e_test 

Source
macro_rules! e2e_test {
    (
        name: $name:expr,
        $(description: $desc:expr,)?
        client: $client:expr,
        $(step $step_name:literal => |$client_param:ident| $step_body:block),+ $(,)?
    ) => { ... };
}
Expand description

Macro for defining E2E test scenarios with a declarative syntax.

§Example

use fastapi_core::testing::{e2e_test, TestClient};

e2e_test! {
    name: "User Login Flow",
    description: "Tests the complete user login process",
    client: TestClient::new(app),

    step "Navigate to login page" => |client| {
        let response = client.get("/login").send();
        assert_eq!(response.status().as_u16(), 200);
    },

    step "Submit credentials" => |client| {
        let response = client
            .post("/login")
            .json(&serde_json::json!({"username": "test", "password": "secret"}))
            .send();
        assert_eq!(response.status().as_u16(), 302);
    },

    step "Access dashboard" => |client| {
        let response = client.get("/dashboard").send();
        assert_eq!(response.status().as_u16(), 200);
        assert!(response.text().contains("Welcome"));
    },
}