diff --git a/test/cannery_web/live/range_live_test.exs b/test/cannery_web/live/range_live_test.exs new file mode 100644 index 00000000..f9e5d4a2 --- /dev/null +++ b/test/cannery_web/live/range_live_test.exs @@ -0,0 +1,89 @@ +defmodule CanneryWeb.RangeLiveTest do + @moduledoc """ + This module tests the Range LiveViews + """ + + use CanneryWeb.ConnCase + import Phoenix.LiveViewTest + import Cannery.Fixtures + import CanneryWeb.Gettext + + @moduletag :range_live_test + @create_attrs %{"ammo_left" => 5, "notes" => "some notes"} + @update_attrs %{"count" => 16, "notes" => "some updated notes"} + @invalid_attrs %{"count" => nil, "notes" => nil} + + defp create_shot_group(%{current_user: current_user}) do + container = container_fixture(%{"staged" => true}, current_user) + ammo_type = ammo_type_fixture(current_user) + ammo_group = ammo_group_fixture(%{"staged" => true}, ammo_type, container, current_user) + + shot_group = + %{"count" => 5, "date" => ~N[2022-02-13 03:17:00], "notes" => "some notes"} + |> shot_group_fixture(current_user, ammo_group) + + %{shot_group: shot_group, ammo_group: ammo_group} + end + + describe "Index" do + setup [:register_and_log_in_user, :create_shot_group] + + test "lists all shot_groups", %{conn: conn, shot_group: shot_group} do + {:ok, _index_live, html} = live(conn, Routes.range_index_path(conn, :index)) + + assert html =~ gettext("Range day") + assert html =~ shot_group.notes + end + + test "saves new shot_group", %{conn: conn, ammo_group: ammo_group} do + {:ok, index_live, _html} = live(conn, Routes.range_index_path(conn, :index)) + + assert index_live |> element("a", dgettext("actions", "Record shots")) |> render_click() =~ + gettext("Record shots") + + assert_patch(index_live, Routes.range_index_path(conn, :add_shot_group, ammo_group)) + + # assert index_live + # |> form("#shot_group-form", shot_group: @invalid_attrs) + # |> render_change() =~ dgettext("errors", "is invalid") + + {:ok, _, html} = + index_live + |> form("#shot-group-form", shot_group: @create_attrs) + |> render_submit() + |> follow_redirect(conn, Routes.range_index_path(conn, :index)) + + assert html =~ dgettext("prompts", "Shots recorded successfully") + assert html =~ "some notes" + end + + test "updates shot_group in listing", %{conn: conn, shot_group: shot_group} do + {:ok, index_live, _html} = live(conn, Routes.range_index_path(conn, :index)) + + assert index_live |> element("[data-qa=\"edit-#{shot_group.id}\"]") |> render_click() =~ + gettext("Edit Shot Records") + + assert_patch(index_live, Routes.range_index_path(conn, :edit, shot_group)) + + # assert index_live + # |> form("#shot_group-form", shot_group: @invalid_attrs) + # |> render_change() =~ dgettext("errors", "is invalid") + + {:ok, _, html} = + index_live + |> form("#shot-group-form", shot_group: @update_attrs) + |> render_submit() + |> follow_redirect(conn, Routes.range_index_path(conn, :index)) + + assert html =~ dgettext("actions", "Shot records updated successfully") + assert html =~ "some updated notes" + end + + test "deletes shot_group in listing", %{conn: conn, shot_group: shot_group} do + {:ok, index_live, _html} = live(conn, Routes.range_index_path(conn, :index)) + + assert index_live |> element("[data-qa=\"delete-#{shot_group.id}\"]") |> render_click() + refute has_element?(index_live, "#shot_group-#{shot_group.id}") + end + end +end diff --git a/test/cannery_web/live/shot_group_live_test.exs b/test/cannery_web/live/shot_group_live_test.exs deleted file mode 100644 index 67480331..00000000 --- a/test/cannery_web/live/shot_group_live_test.exs +++ /dev/null @@ -1,122 +0,0 @@ -defmodule CanneryWeb.ShotGroupLiveTest do - use CanneryWeb.ConnCase - - import Phoenix.LiveViewTest - import Cannery.ActivityLogFixtures - - @create_attrs %{ - count: 42, - date: %{day: 13, hour: 3, minute: 17, month: 2, year: 2022}, - notes: "some notes" - } - @update_attrs %{ - count: 43, - date: %{day: 14, hour: 3, minute: 17, month: 2, year: 2022}, - notes: "some updated notes" - } - @invalid_attrs %{ - count: nil, - date: %{day: 30, hour: 3, minute: 17, month: 2, year: 2022}, - notes: nil - } - - defp create_shot_group(_) do - shot_group = shot_group_fixture() - %{shot_group: shot_group} - end - - describe "Index" do - setup [:create_shot_group] - - test "lists all shot_groups", %{conn: conn, shot_group: shot_group} do - {:ok, _index_live, html} = live(conn, Routes.shot_group_index_path(conn, :index)) - - assert html =~ "Shot records" - assert html =~ shot_group.notes - end - - test "saves new shot_group", %{conn: conn} do - {:ok, index_live, _html} = live(conn, Routes.shot_group_index_path(conn, :index)) - - assert index_live |> element("a", "New Shot group") |> render_click() =~ - "New Shot group" - - assert_patch(index_live, Routes.shot_group_index_path(conn, :new)) - - assert index_live - |> form("#shot_group-form", shot_group: @invalid_attrs) - |> render_change() =~ "is invalid" - - {:ok, _, html} = - index_live - |> form("#shot_group-form", shot_group: @create_attrs) - |> render_submit() - |> follow_redirect(conn, Routes.shot_group_index_path(conn, :index)) - - assert html =~ "Shot group created successfully" - assert html =~ "some notes" - end - - test "updates shot_group in listing", %{conn: conn, shot_group: shot_group} do - {:ok, index_live, _html} = live(conn, Routes.shot_group_index_path(conn, :index)) - - assert index_live |> element("#shot_group-#{shot_group.id} a", "Edit") |> render_click() =~ - "Edit Shot group" - - assert_patch(index_live, Routes.shot_group_index_path(conn, :edit, shot_group)) - - assert index_live - |> form("#shot_group-form", shot_group: @invalid_attrs) - |> render_change() =~ "is invalid" - - {:ok, _, html} = - index_live - |> form("#shot_group-form", shot_group: @update_attrs) - |> render_submit() - |> follow_redirect(conn, Routes.shot_group_index_path(conn, :index)) - - assert html =~ "Shot group updated successfully" - assert html =~ "some updated notes" - end - - test "deletes shot_group in listing", %{conn: conn, shot_group: shot_group} do - {:ok, index_live, _html} = live(conn, Routes.shot_group_index_path(conn, :index)) - - assert index_live |> element("#shot_group-#{shot_group.id} a", "Delete") |> render_click() - refute has_element?(index_live, "#shot_group-#{shot_group.id}") - end - end - - describe "Show" do - setup [:create_shot_group] - - test "displays shot_group", %{conn: conn, shot_group: shot_group} do - {:ok, _show_live, html} = live(conn, Routes.shot_group_show_path(conn, :show, shot_group)) - - assert html =~ "Show Shot group" - assert html =~ shot_group.notes - end - - test "updates shot_group within modal", %{conn: conn, shot_group: shot_group} do - {:ok, show_live, _html} = live(conn, Routes.shot_group_show_path(conn, :show, shot_group)) - - assert show_live |> element("a", "Edit") |> render_click() =~ - "Edit Shot group" - - assert_patch(show_live, Routes.shot_group_show_path(conn, :edit, shot_group)) - - assert show_live - |> form("#shot_group-form", shot_group: @invalid_attrs) - |> render_change() =~ "is invalid" - - {:ok, _, html} = - show_live - |> form("#shot_group-form", shot_group: @update_attrs) - |> render_submit() - |> follow_redirect(conn, Routes.shot_group_show_path(conn, :show, shot_group)) - - assert html =~ "Shot group updated successfully" - assert html =~ "some updated notes" - end - end -end