summaryrefslogtreecommitdiff
path: root/test/aggiedit_web/live
diff options
context:
space:
mode:
authorLogan Hunt <loganhunt@simponic.xyz>2022-04-06 12:55:12 -0600
committerLogan Hunt <loganhunt@simponic.xyz>2022-04-06 12:55:12 -0600
commit4067339e8cf9dbd624a8fa0183d7a29c73b2e762 (patch)
tree4f995e706c10bf5b9a58c078cfb843c76e31c8a0 /test/aggiedit_web/live
parent66d871e5461814dad58872eb832a58f2c3c5111b (diff)
downloadaggiedit-4067339e8cf9dbd624a8fa0183d7a29c73b2e762.tar.gz
aggiedit-4067339e8cf9dbd624a8fa0183d7a29c73b2e762.zip
Models for upload and post; generated liveview controller for posts
Diffstat (limited to 'test/aggiedit_web/live')
-rw-r--r--test/aggiedit_web/live/post_live_test.exs110
1 files changed, 110 insertions, 0 deletions
diff --git a/test/aggiedit_web/live/post_live_test.exs b/test/aggiedit_web/live/post_live_test.exs
new file mode 100644
index 0000000..0e5a6f0
--- /dev/null
+++ b/test/aggiedit_web/live/post_live_test.exs
@@ -0,0 +1,110 @@
+defmodule AggieditWeb.PostLiveTest do
+ use AggieditWeb.ConnCase
+
+ import Phoenix.LiveViewTest
+ import Aggiedit.RoomsFixtures
+
+ @create_attrs %{body: "some body", title: "some title"}
+ @update_attrs %{body: "some updated body", title: "some updated title"}
+ @invalid_attrs %{body: nil, title: nil}
+
+ defp create_post(_) do
+ post = post_fixture()
+ %{post: post}
+ end
+
+ describe "Index" do
+ setup [:create_post]
+
+ test "lists all posts", %{conn: conn, post: post} do
+ {:ok, _index_live, html} = live(conn, Routes.post_index_path(conn, :index))
+
+ assert html =~ "Listing Posts"
+ assert html =~ post.body
+ end
+
+ test "saves new post", %{conn: conn} do
+ {:ok, index_live, _html} = live(conn, Routes.post_index_path(conn, :index))
+
+ assert index_live |> element("a", "New Post") |> render_click() =~
+ "New Post"
+
+ assert_patch(index_live, Routes.post_index_path(conn, :new))
+
+ assert index_live
+ |> form("#post-form", post: @invalid_attrs)
+ |> render_change() =~ "can&#39;t be blank"
+
+ {:ok, _, html} =
+ index_live
+ |> form("#post-form", post: @create_attrs)
+ |> render_submit()
+ |> follow_redirect(conn, Routes.post_index_path(conn, :index))
+
+ assert html =~ "Post created successfully"
+ assert html =~ "some body"
+ end
+
+ test "updates post in listing", %{conn: conn, post: post} do
+ {:ok, index_live, _html} = live(conn, Routes.post_index_path(conn, :index))
+
+ assert index_live |> element("#post-#{post.id} a", "Edit") |> render_click() =~
+ "Edit Post"
+
+ assert_patch(index_live, Routes.post_index_path(conn, :edit, post))
+
+ assert index_live
+ |> form("#post-form", post: @invalid_attrs)
+ |> render_change() =~ "can&#39;t be blank"
+
+ {:ok, _, html} =
+ index_live
+ |> form("#post-form", post: @update_attrs)
+ |> render_submit()
+ |> follow_redirect(conn, Routes.post_index_path(conn, :index))
+
+ assert html =~ "Post updated successfully"
+ assert html =~ "some updated body"
+ end
+
+ test "deletes post in listing", %{conn: conn, post: post} do
+ {:ok, index_live, _html} = live(conn, Routes.post_index_path(conn, :index))
+
+ assert index_live |> element("#post-#{post.id} a", "Delete") |> render_click()
+ refute has_element?(index_live, "#post-#{post.id}")
+ end
+ end
+
+ describe "Show" do
+ setup [:create_post]
+
+ test "displays post", %{conn: conn, post: post} do
+ {:ok, _show_live, html} = live(conn, Routes.post_show_path(conn, :show, post))
+
+ assert html =~ "Show Post"
+ assert html =~ post.body
+ end
+
+ test "updates post within modal", %{conn: conn, post: post} do
+ {:ok, show_live, _html} = live(conn, Routes.post_show_path(conn, :show, post))
+
+ assert show_live |> element("a", "Edit") |> render_click() =~
+ "Edit Post"
+
+ assert_patch(show_live, Routes.post_show_path(conn, :edit, post))
+
+ assert show_live
+ |> form("#post-form", post: @invalid_attrs)
+ |> render_change() =~ "can&#39;t be blank"
+
+ {:ok, _, html} =
+ show_live
+ |> form("#post-form", post: @update_attrs)
+ |> render_submit()
+ |> follow_redirect(conn, Routes.post_show_path(conn, :show, post))
+
+ assert html =~ "Post updated successfully"
+ assert html =~ "some updated body"
+ end
+ end
+end