mirror of
https://github.com/ash-project/ash_hq.git
synced 2024-09-20 13:23:38 +12:00
47 lines
1.2 KiB
Elixir
47 lines
1.2 KiB
Elixir
|
defmodule AshHq.LogInTest do
|
||
|
use AshHqWeb.ConnCase
|
||
|
|
||
|
import Plug.Conn
|
||
|
import Phoenix.ConnTest
|
||
|
import Phoenix.LiveViewTest
|
||
|
|
||
|
@endpoint AshHqWeb.Endpoint
|
||
|
|
||
|
setup :register_user
|
||
|
|
||
|
describe "log in form" do
|
||
|
test "renders", %{conn: conn} do
|
||
|
{:ok, _view, html} = live(conn, "/users/log_in")
|
||
|
|
||
|
assert html =~ "Log In"
|
||
|
end
|
||
|
|
||
|
test "submission logs you in", %{conn: conn, user: user} do
|
||
|
{:ok, view, _html} = live(conn, "/users/log_in")
|
||
|
|
||
|
form = form(view, "form#log_in", log_in: %{email: user.email, password: "hello world!"})
|
||
|
|
||
|
assert form
|
||
|
|> render_submit() =~ "phx-trigger-action"
|
||
|
|
||
|
conn = follow_trigger_action(form, conn)
|
||
|
|
||
|
conn = fetch_session(conn)
|
||
|
assert get_session(conn, :user_token)
|
||
|
end
|
||
|
|
||
|
test "submission with a bad password does not log you in", %{conn: conn, user: user} do
|
||
|
{:ok, view, _html} = live(conn, "/users/log_in")
|
||
|
|
||
|
form = form(view, "form#log_in", log_in: %{email: user.email, password: "bad password!"})
|
||
|
|
||
|
assert {:ok, _view, html} =
|
||
|
form
|
||
|
|> render_submit()
|
||
|
|> follow_redirect(conn)
|
||
|
|
||
|
assert html =~ "Invalid username or password"
|
||
|
end
|
||
|
end
|
||
|
end
|