Cancel refresh cover job if image is not available
This commit is contained in:
@@ -5,8 +5,15 @@ defmodule MusicLibrary.Worker.RefreshCover do
|
||||
def perform(%Oban.Job{args: %{"id" => record_id}}) do
|
||||
record = MusicLibrary.Records.get_record!(record_id)
|
||||
|
||||
with {:ok, updated_record} <- MusicLibrary.Records.refresh_cover(record) do
|
||||
MusicLibrary.Records.notify_update(updated_record)
|
||||
case MusicLibrary.Records.refresh_cover(record) do
|
||||
{:ok, updated_record} ->
|
||||
MusicLibrary.Records.notify_update(updated_record)
|
||||
|
||||
{:error, :cover_not_available} ->
|
||||
{:cancel, :cover_not_available}
|
||||
|
||||
error ->
|
||||
error
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -24,6 +24,18 @@ defmodule MusicLibrary.Worker.RefreshCoverTest do
|
||||
assert asset.format == "image/jpeg"
|
||||
end
|
||||
|
||||
@tag :capture_log
|
||||
test "cancels the job when cover is not available" do
|
||||
record = record()
|
||||
|
||||
Req.Test.stub(MusicBrainz.API, fn conn ->
|
||||
Plug.Conn.send_resp(conn, 404, "Not Found")
|
||||
end)
|
||||
|
||||
assert {:cancel, :cover_not_available} =
|
||||
perform_job(RefreshCover, %{"id" => record.id})
|
||||
end
|
||||
|
||||
test "raises when record does not exist" do
|
||||
assert_raise Ecto.NoResultsError, fn ->
|
||||
perform_job(RefreshCover, %{"id" => Ecto.UUID.generate()})
|
||||
|
||||
Reference in New Issue
Block a user