From 84edf1902fe02c51d581964dd987e220865d4498 Mon Sep 17 00:00:00 2001 From: Kieran Eglin Date: Fri, 29 Mar 2024 17:27:25 -0700 Subject: [PATCH] Ensured download worker always returns a 2-member tuple --- config/test.exs | 3 +-- lib/pinchflat/downloading/media_download_worker.ex | 4 +++- test/pinchflat/downloading/media_download_worker_test.exs | 6 ++++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/config/test.exs b/config/test.exs index 2b5c7d8..6c7409e 100644 --- a/config/test.exs +++ b/config/test.exs @@ -32,8 +32,7 @@ config :pinchflat, Pinchflat.Mailer, adapter: Swoosh.Adapters.Test # Disable swoosh api client as it is only required for production adapters. config :swoosh, :api_client, false -# Print only warnings and errors during test -config :logger, level: :warning +config :logger, level: :critical # Initialize plugs at runtime for faster test compilation config :phoenix, :plug_init_mode, :runtime diff --git a/lib/pinchflat/downloading/media_download_worker.ex b/lib/pinchflat/downloading/media_download_worker.ex index f87554a..ca69153 100644 --- a/lib/pinchflat/downloading/media_download_worker.ex +++ b/lib/pinchflat/downloading/media_download_worker.ex @@ -57,7 +57,9 @@ defmodule Pinchflat.Downloading.MediaDownloadWorker do {:ok, updated_media_item} err -> - err + Logger.error("Failed to download media for media item #{media_item.id}: #{inspect(err)}") + + {:error, :download_failed} end end diff --git a/test/pinchflat/downloading/media_download_worker_test.exs b/test/pinchflat/downloading/media_download_worker_test.exs index ad04c69..1f3ed5c 100644 --- a/test/pinchflat/downloading/media_download_worker_test.exs +++ b/test/pinchflat/downloading/media_download_worker_test.exs @@ -74,6 +74,12 @@ defmodule Pinchflat.Downloading.MediaDownloadWorkerTest do end) end + test "it ensures error are returned in a 2-item tuple", %{media_item: media_item} do + expect(YtDlpRunnerMock, :run, fn _url, _opts, _ot -> {:error, "error", 1} end) + + assert {:error, :download_failed} = perform_job(MediaDownloadWorker, %{id: media_item.id}) + end + test "it does not download if the source is set to not download", %{media_item: media_item} do expect(YtDlpRunnerMock, :run, 0, fn _url, _opts, _ot -> :ok end)