nulla/test/nulla_web/controllers/media_attachment_controller_test.exs
2025-07-04 10:25:40 +02:00

118 lines
3.5 KiB
Elixir

defmodule NullaWeb.MediaAttachmentControllerTest do
use NullaWeb.ConnCase
import Nulla.NotesFixtures
import Nulla.MediaAttachmentsFixtures
alias Nulla.MediaAttachments.MediaAttachment
@create_attrs %{
name: "some name",
type: "some type",
width: 42,
url: "some url",
mediaType: "some mediaType",
height: 42
}
@update_attrs %{
name: "some updated name",
type: "some updated type",
width: 43,
url: "some updated url",
mediaType: "some updated mediaType",
height: 43
}
@invalid_attrs %{name: nil, type: nil, width: nil, url: nil, mediaType: nil, height: nil}
setup %{conn: conn} do
{:ok, conn: put_req_header(conn, "accept", "application/json")}
end
describe "index" do
test "lists all media_attachments", %{conn: conn} do
conn = get(conn, ~p"/api/media_attachments")
assert json_response(conn, 200)["data"] == []
end
end
describe "create media_attachment" do
test "renders media_attachment when data is valid", %{conn: conn} do
note = note_fixture()
create_attrs = Map.merge(@create_attrs, %{note_id: note.id})
conn = post(conn, ~p"/api/media_attachments", media_attachment: create_attrs)
assert %{"id" => id} = json_response(conn, 201)["data"]
conn = get(conn, ~p"/api/media_attachments/#{id}")
assert %{
"id" => ^id,
"height" => 42,
"mediaType" => "some mediaType",
"name" => "some name",
"type" => "some type",
"url" => "some url",
"width" => 42
} = json_response(conn, 200)["data"]
end
test "renders errors when data is invalid", %{conn: conn} do
conn = post(conn, ~p"/api/media_attachments", media_attachment: @invalid_attrs)
assert json_response(conn, 422)["errors"] != %{}
end
end
describe "update media_attachment" do
setup [:create_media_attachment]
test "renders media_attachment when data is valid", %{
conn: conn,
media_attachment: %MediaAttachment{id: id} = media_attachment
} do
conn =
put(conn, ~p"/api/media_attachments/#{media_attachment}", media_attachment: @update_attrs)
assert %{"id" => ^id} = json_response(conn, 200)["data"]
conn = get(conn, ~p"/api/media_attachments/#{id}")
assert %{
"id" => ^id,
"height" => 43,
"mediaType" => "some updated mediaType",
"name" => "some updated name",
"type" => "some updated type",
"url" => "some updated url",
"width" => 43
} = json_response(conn, 200)["data"]
end
test "renders errors when data is invalid", %{conn: conn, media_attachment: media_attachment} do
conn =
put(conn, ~p"/api/media_attachments/#{media_attachment}",
media_attachment: @invalid_attrs
)
assert json_response(conn, 422)["errors"] != %{}
end
end
describe "delete media_attachment" do
setup [:create_media_attachment]
test "deletes chosen media_attachment", %{conn: conn, media_attachment: media_attachment} do
conn = delete(conn, ~p"/api/media_attachments/#{media_attachment}")
assert response(conn, 204)
assert_error_sent 404, fn ->
get(conn, ~p"/api/media_attachments/#{media_attachment}")
end
end
end
defp create_media_attachment(_) do
media_attachment = media_attachment_fixture()
%{media_attachment: media_attachment}
end
end