Fold RequireLogin plug into Auth module

This commit is contained in:
Claudio Ortolina
2024-12-22 16:08:40 +00:00
parent 341d276db5
commit cf3761ca79
5 changed files with 36 additions and 52 deletions
+43
View File
@@ -0,0 +1,43 @@
defmodule MusicLibraryWeb.AuthTest do
use ExUnit.Case, async: true
use Plug.Test
alias MusicLibraryWeb.Auth
defp setup_conn(_config) do
conn =
conn(:get, "/any-path")
|> Phoenix.ConnTest.init_test_session(%{})
|> Phoenix.ConnTest.fetch_flash()
%{conn: conn}
end
describe "require_logged_in/2" do
setup [:setup_conn]
test "when logged out, it redirects to /login", %{conn: conn} do
conn = Auth.require_logged_in(conn, [])
{"location", location} =
conn.resp_headers
|> List.keyfind("location", 0)
assert conn.status == 302
assert conn.state == :sent
assert conn.halted
assert location == "/login"
assert conn.assigns.flash == %{"error" => "You must be logged in to access this page"}
end
test "when logged in, it passes through", %{conn: conn} do
conn =
conn
|> Phoenix.ConnTest.init_test_session(%{logged_in: true})
|> Auth.require_logged_in([])
assert conn.status == nil
assert conn.state == :unset
end
end
end