48 lines
1.2 KiB
Elixir
48 lines
1.2 KiB
Elixir
|
defmodule PrymnWeb.UserLoginLiveTest do
|
||
|
use PrymnWeb.ConnCase
|
||
|
|
||
|
import Phoenix.LiveViewTest
|
||
|
import Prymn.AccountsFixtures
|
||
|
|
||
|
describe "Log in page" do
|
||
|
test "redirects if already logged in", %{conn: conn} do
|
||
|
result =
|
||
|
conn
|
||
|
|> log_in_user(user_fixture())
|
||
|
|> live(~p"/auth/log_in")
|
||
|
|> follow_redirect(conn, "/")
|
||
|
|
||
|
assert {:ok, _conn} = result
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe "user login" do
|
||
|
test "redirects if user login with valid credentials", %{conn: conn} do
|
||
|
password = "123456789abcd"
|
||
|
user = user_fixture(%{password: password})
|
||
|
|
||
|
{:ok, lv, _html} = live(conn, ~p"/auth/log_in")
|
||
|
|
||
|
form =
|
||
|
form(lv, "#login_form", user: %{email: user.email, password: password, remember_me: true})
|
||
|
|
||
|
conn = submit_form(form, conn)
|
||
|
|
||
|
assert redirected_to(conn) == ~p"/"
|
||
|
end
|
||
|
|
||
|
test "redirects to login page if there are no valid credentials", %{conn: conn} do
|
||
|
{:ok, lv, _html} = live(conn, ~p"/auth/log_in")
|
||
|
|
||
|
email = "test@email.com"
|
||
|
|
||
|
form =
|
||
|
form(lv, "#login_form", user: %{email: email, password: "123456", remember_me: true})
|
||
|
|
||
|
conn = submit_form(form, conn)
|
||
|
|
||
|
assert redirected_to(conn) == ~p"/auth/log_in?#{[email: email]}"
|
||
|
end
|
||
|
end
|
||
|
end
|