mirror of
https://github.com/ash-project/ash_hq.git
synced 2024-09-20 13:23:38 +12:00
884de2d2d2
improvement: better look and feel (not much better, though)
46 lines
1.2 KiB
Elixir
46 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
|