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