ML-169.10.1: Add delete coverage

Cover current delete behavior across LiveView index and show paths, and strengthen existing delete tests with persistence assertions.\n\nValidation: mise run dev:precommit
This commit is contained in:
Claudio Ortolina
2026-05-20 18:04:29 +01:00
parent 981099511f
commit 23960b5b23
12 changed files with 241 additions and 1 deletions
@@ -127,6 +127,22 @@ defmodule MusicLibraryWeb.CollectionLive.IndexTest do
end
end
describe "Delete record" do
test "deletes a record from the listing", %{conn: conn} do
record = record(%{title: "Delete From Collection Index"})
conn
|> visit(~p"/collection")
|> assert_has("#records-#{record.id}")
|> click_link("#records-#{record.id} a[data-confirm='Are you sure?']", "Delete")
|> refute_has("#records-#{record.id}")
assert_raise Ecto.NoResultsError, fn ->
Records.get_record!(record.id)
end
end
end
describe "Search and pagination" do
setup [:fill_collection]
@@ -6,6 +6,7 @@ defmodule MusicLibraryWeb.CollectionLive.ShowTest do
alias MusicBrainz.Fixtures
alias MusicLibrary.Assets.Transform
alias MusicLibrary.Records
alias MusicLibrary.Records.Record
alias Phoenix.PubSub
@@ -69,6 +70,26 @@ defmodule MusicLibraryWeb.CollectionLive.ShowTest do
end
end
describe "Delete record" do
test "deletes the record and navigates back to collection", %{conn: conn} do
record = record()
release_response = Fixtures.Release.release(:marbles)
Req.Test.stub(MusicBrainz.API, fn conn ->
Req.Test.json(conn, release_response)
end)
conn
|> visit(~p"/collection/#{record.id}")
|> click_link("a[data-confirm='Are you sure?']", "Delete")
|> assert_path(~p"/collection")
assert_raise Ecto.NoResultsError, fn ->
Records.get_record!(record.id)
end
end
end
describe "handle_info({:update, record}) with live_action guard" do
test "updates record when showing (live_action is :show)", %{conn: conn} do
record = record()