View Source Inertia.Testing (Inertia v3.0.0-rc3)
Helpers for testing Inertia responses.
Summary
Functions
Fetches the Inertia component (if applicable) for the current request.
Fetches the deferred prop groups for the current request.
Fetches the Inertia errors (if applicable) for the current request.
Fetches the Inertia flash data (if applicable) for the current request.
Fetches the merge prop keys for the current request.
Fetches the once prop metadata for the current request.
Fetches the full Inertia page object map for the current request.
Fetches the Inertia props (if applicable) for the current request.
Fetches the rescued prop paths for the current request.
Fetches the scroll prop metadata for the current request.
Fetches the shared prop keys (if applicable) for the current request.
Functions
@spec inertia_component(Plug.Conn.t()) :: String.t() | nil
Fetches the Inertia component (if applicable) for the current request.
Example
use MyAppWeb.ConnCase
import Inertia.Testing
describe "GET /" do
test "renders the home page", %{conn: conn} do
conn = get("/")
assert inertia_component(conn) == "Home"
end
end
@spec inertia_deferred_props(Plug.Conn.t()) :: map()
Fetches the deferred prop groups for the current request.
Returns a map of group name to list of deferred prop paths.
@spec inertia_errors(Plug.Conn.t()) :: map()
Fetches the Inertia errors (if applicable) for the current request.
If there are errors available in the current page props, they will be returned. Otherwise, errors that have been stored in the session will be retrieved.
Example
use MyAppWeb.ConnCase
import Inertia.Testing
describe "POST /users" do
test "fails when name empty", %{conn: conn} do
conn = post("/users", %{"name" => ""})
assert %{user: %{id: 1}} = inertia_props(conn)
assert redirected_to(conn) == ~p"/users"
assert inertia_errors(conn) == %{"name" => "can't be blank"}
end
end
@spec inertia_flash(Plug.Conn.t()) :: map()
Fetches the Inertia flash data (if applicable) for the current request.
Returns the flash map from the top-level page object, or falls back to the conn flash assigns.
Example
use MyAppWeb.ConnCase
import Inertia.Testing
describe "PUT /" do
test "flashes a success message", %{conn: conn} do
conn = put("/")
assert %{"info" => "Updated"} = inertia_flash(conn)
end
end
@spec inertia_merge_props(Plug.Conn.t()) :: [String.t()]
Fetches the merge prop keys for the current request.
Returns the list of prop paths that are configured for client-side merging.
@spec inertia_once_props(Plug.Conn.t()) :: map()
Fetches the once prop metadata for the current request.
Returns a map of once-prop keys to their metadata (prop path and expiration).
@spec inertia_page(Plug.Conn.t()) :: map() | nil
Fetches the full Inertia page object map for the current request.
Returns the complete page data including component, props, url, version, and any metadata like mergeProps, deferredProps, etc.
@spec inertia_props(Plug.Conn.t()) :: map() | nil
Fetches the Inertia props (if applicable) for the current request.
Example
use MyAppWeb.ConnCase
import Inertia.Testing
describe "GET /" do
test "renders the home page", %{conn: conn} do
conn = get("/")
assert %{user: %{id: 1}} = inertia_props(conn)
end
end
@spec inertia_rescued_props(Plug.Conn.t()) :: [String.t()]
Fetches the rescued prop paths for the current request.
Returns the list of deferred prop paths whose resolution failed and were
rescued (via inertia_defer(..., on_error: :ignore)).
@spec inertia_scroll_props(Plug.Conn.t()) :: map()
Fetches the scroll prop metadata for the current request.
Returns a map of prop paths to their scroll pagination metadata.