shift73k/test/shift73k_web/live/shift_template_live_test.exs

116 lines
4.6 KiB
Elixir

defmodule Shift73kWeb.ShiftTemplateLiveTest do
use Shift73kWeb.ConnCase
import Phoenix.LiveViewTest
alias Shift73k.ShiftTemplates
@create_attrs %{description: "some description", length_hours: 12, length_minutes: 42, location: "some location", start_time: ~T[14:00:00], subject: "some subject", timezone: "some timezone"}
@update_attrs %{description: "some updated description", length_hours: 12, length_minutes: 43, location: "some updated location", start_time: ~T[15:01:01], subject: "some updated subject", timezone: "some updated timezone"}
@invalid_attrs %{description: nil, length_hours: nil, length_minutes: nil, location: nil, start_time: nil, subject: nil, timezone: nil}
defp fixture(:shift_template) do
{:ok, shift_template} = ShiftTemplates.create_shift_template(@create_attrs)
shift_template
end
defp create_shift_template(_) do
shift_template = fixture(:shift_template)
%{shift_template: shift_template}
end
describe "Index" do
setup [:create_shift_template]
test "lists all shift_templates", %{conn: conn, shift_template: shift_template} do
{:ok, _index_live, html} = live(conn, Routes.shift_template_index_path(conn, :index))
assert html =~ "Listing Shift templates"
assert html =~ shift_template.description
end
test "saves new shift_template", %{conn: conn} do
{:ok, index_live, _html} = live(conn, Routes.shift_template_index_path(conn, :index))
assert index_live |> element("a", "New Shift template") |> render_click() =~
"New Shift template"
assert_patch(index_live, Routes.shift_template_index_path(conn, :new))
assert index_live
|> form("#shift_template-form", shift_template: @invalid_attrs)
|> render_change() =~ "can't be blank"
{:ok, _, html} =
index_live
|> form("#shift_template-form", shift_template: @create_attrs)
|> render_submit()
|> follow_redirect(conn, Routes.shift_template_index_path(conn, :index))
assert html =~ "Shift template created successfully"
assert html =~ "some description"
end
test "updates shift_template in listing", %{conn: conn, shift_template: shift_template} do
{:ok, index_live, _html} = live(conn, Routes.shift_template_index_path(conn, :index))
assert index_live |> element("#shift_template-#{shift_template.id} a", "Edit") |> render_click() =~
"Edit Shift template"
assert_patch(index_live, Routes.shift_template_index_path(conn, :edit, shift_template))
assert index_live
|> form("#shift_template-form", shift_template: @invalid_attrs)
|> render_change() =~ "can't be blank"
{:ok, _, html} =
index_live
|> form("#shift_template-form", shift_template: @update_attrs)
|> render_submit()
|> follow_redirect(conn, Routes.shift_template_index_path(conn, :index))
assert html =~ "Shift template updated successfully"
assert html =~ "some updated description"
end
test "deletes shift_template in listing", %{conn: conn, shift_template: shift_template} do
{:ok, index_live, _html} = live(conn, Routes.shift_template_index_path(conn, :index))
assert index_live |> element("#shift_template-#{shift_template.id} a", "Delete") |> render_click()
refute has_element?(index_live, "#shift_template-#{shift_template.id}")
end
end
describe "Show" do
setup [:create_shift_template]
test "displays shift_template", %{conn: conn, shift_template: shift_template} do
{:ok, _show_live, html} = live(conn, Routes.shift_template_show_path(conn, :show, shift_template))
assert html =~ "Show Shift template"
assert html =~ shift_template.description
end
test "updates shift_template within modal", %{conn: conn, shift_template: shift_template} do
{:ok, show_live, _html} = live(conn, Routes.shift_template_show_path(conn, :show, shift_template))
assert show_live |> element("a", "Edit") |> render_click() =~
"Edit Shift template"
assert_patch(show_live, Routes.shift_template_show_path(conn, :edit, shift_template))
assert show_live
|> form("#shift_template-form", shift_template: @invalid_attrs)
|> render_change() =~ "can't be blank"
{:ok, _, html} =
show_live
|> form("#shift_template-form", shift_template: @update_attrs)
|> render_submit()
|> follow_redirect(conn, Routes.shift_template_show_path(conn, :show, shift_template))
assert html =~ "Shift template updated successfully"
assert html =~ "some updated description"
end
end
end