ash_authentication_phoenix/test/router_test.exs
Andrew Hacking 7c90908ad9
test: dynamic router - some additional tests, fixes and failures (#493)
* test: Scoped router tests

* test: Initial controller tests

* docs: Router helper docs, including :unscoped

* chore: Code formatting

* fix: ensure path params are processed on strategy router

* test: Working controller tests for register, sign-in, sign-out

---------

Co-authored-by: Zach Daniel <zach@zachdaniel.dev>
2024-08-14 11:48:18 -04:00

70 lines
2.3 KiB
Elixir

defmodule AshAuthentication.Phoenix.RouterTest do
@moduledoc false
use ExUnit.Case
test "sign_in_routes adds a route according to its scope" do
route =
AshAuthentication.Phoenix.Test.Router
|> Phoenix.Router.routes()
|> Enum.find(&(&1.path == "/sign-in"))
{_, _, _, %{extra: %{session: session}}} = route.metadata.phoenix_live_view
assert session ==
{AshAuthentication.Phoenix.Router, :generate_session,
[
%{
"auth_routes_prefix" => "/auth",
"otp_app" => nil,
"overrides" => [AshAuthentication.Phoenix.Overrides.Default],
"path" => "/sign-in",
"register_path" => "/register",
"reset_path" => "/reset"
}
]}
end
test "sign_in_routes respects the inherited router scope" do
route =
AshAuthentication.Phoenix.Test.Router
|> Phoenix.Router.routes()
|> Enum.find(&(&1.path == "/nested/sign-in"))
{_, _, _, %{extra: %{session: session}}} = route.metadata.phoenix_live_view
assert session ==
{AshAuthentication.Phoenix.Router, :generate_session,
[
%{
"auth_routes_prefix" => "/nested/auth",
"otp_app" => nil,
"overrides" => [AshAuthentication.Phoenix.Overrides.Default],
"path" => "/nested/sign-in",
"register_path" => "/nested/register",
"reset_path" => "/nested/reset"
}
]}
end
test "sign_in_routes respects unscoped" do
route =
AshAuthentication.Phoenix.Test.Router
|> Phoenix.Router.routes()
|> Enum.find(&(&1.path == "/unscoped/sign-in"))
{_, _, _, %{extra: %{session: session}}} = route.metadata.phoenix_live_view
assert session ==
{AshAuthentication.Phoenix.Router, :generate_session,
[
%{
"auth_routes_prefix" => "/auth",
"otp_app" => nil,
"overrides" => [AshAuthentication.Phoenix.Overrides.Default],
"path" => "/unscoped/sign-in",
"register_path" => "/register",
"reset_path" => "/reset"
}
]}
end
end