Make sure to pull artists info when record is updated

Catches the scenario when a new artist is added
This commit is contained in:
Claudio Ortolina
2026-04-01 07:11:47 +01:00
parent 7d65a7d4ab
commit 6fcca38e27
2 changed files with 23 additions and 0 deletions
+7
View File
@@ -430,6 +430,13 @@ defmodule MusicLibrary.Records do
@spec update_record(Record.t(), map()) :: {:ok, Record.t()} | {:error, Ecto.Changeset.t()}
def update_record(%Record{} = record, attrs) do
with {:ok, updated_record} <- do_update_record(record, attrs),
:ok <- refresh_artist_info_async(updated_record) do
{:ok, updated_record}
end
end
defp do_update_record(record, attrs) do
record
|> Record.changeset(attrs)
|> Repo.update()
+16
View File
@@ -69,6 +69,22 @@ defmodule MusicLibrary.RecordsTest do
end
end
describe "update_record/2" do
test "queues a task to retrieve artist info data" do
record =
record(musicbrainz_data: release_group(:lockdown_trilogy))
[artist] = record.artists
Oban.drain_queue(queue: :default)
Records.update_record(record, %{title: "Updated Title"})
assert_enqueued worker: MusicLibrary.Worker.FetchArtistInfo,
args: %{id: artist.musicbrainz_id}
end
end
describe "delete_record/1" do
test "queues a task to delete artist info data" do
record =