defmodule NullaWeb.Api.AnnounceControllerTest do use NullaWeb.ConnCase import Nulla.ActorsFixtures import Nulla.NotesFixtures import Nulla.AnnouncesFixtures alias Nulla.Announces.Announce @invalid_attrs %{ actor_id: nil, note_id: nil } setup %{conn: conn} do {:ok, conn: put_req_header(conn, "accept", "application/json")} end describe "index" do test "lists all announces", %{conn: conn} do conn = get(conn, ~p"/api/announces") assert json_response(conn, 200)["data"] == [] end end describe "create announce" do test "renders announce when data is valid", %{conn: conn} do actor = actor_fixture() note = note_fixture() create_attrs = %{ actor_id: actor.id, note_id: note.id } conn = post(conn, ~p"/api/announces", announce: create_attrs) assert %{"id" => id} = json_response(conn, 201)["data"] conn = get(conn, ~p"/api/announces/#{id}") assert %{ "id" => ^id } = json_response(conn, 200)["data"] end test "renders errors when data is invalid", %{conn: conn} do conn = post(conn, ~p"/api/announces", announce: @invalid_attrs) assert json_response(conn, 422)["errors"] != %{} end end describe "update announce" do setup [:create_announce] test "renders announce when data is valid", %{ conn: conn, announce: %Announce{id: id} = announce } do actor = actor_fixture() note = note_fixture() update_attrs = %{ actor_id: actor.id, note_id: note.id } conn = put(conn, ~p"/api/announces/#{announce}", announce: update_attrs) assert %{"id" => ^id} = json_response(conn, 200)["data"] conn = get(conn, ~p"/api/announces/#{id}") assert %{ "id" => ^id } = json_response(conn, 200)["data"] end test "renders errors when data is invalid", %{conn: conn, announce: announce} do conn = put(conn, ~p"/api/announces/#{announce}", announce: @invalid_attrs) assert json_response(conn, 422)["errors"] != %{} end end describe "delete announce" do setup [:create_announce] test "deletes chosen announce", %{conn: conn, announce: announce} do conn = delete(conn, ~p"/api/announces/#{announce}") assert response(conn, 204) assert_error_sent 404, fn -> get(conn, ~p"/api/announces/#{announce}") end end end defp create_announce(_) do announce = announce_fixture() %{announce: announce} end end