Resolved bug where non-pending media would notify when fast indexing (#187)

This commit is contained in:
Kieran
2024-04-16 13:47:56 -07:00
committed by GitHub
parent 8ca19ba076
commit b2e5e9b880
13 changed files with 190 additions and 259 deletions
@@ -4,6 +4,7 @@ defmodule Pinchflat.Downloading.DownloadingHelpersTest do
import Mox
import Pinchflat.MediaFixtures
import Pinchflat.SourcesFixtures
import Pinchflat.ProfilesFixtures
alias Pinchflat.Tasks
alias Pinchflat.Downloading.DownloadingHelpers
@@ -72,4 +73,44 @@ defmodule Pinchflat.Downloading.DownloadingHelpersTest do
assert [] = Tasks.list_tasks_for(media_item)
end
end
describe "kickoff_download_if_pending/1" do
setup do
media_item = media_item_fixture(media_filepath: nil)
{:ok, media_item: media_item}
end
test "enqueues a download job", %{media_item: media_item} do
assert {:ok, _} = DownloadingHelpers.kickoff_download_if_pending(media_item)
assert_enqueued(worker: MediaDownloadWorker, args: %{"id" => media_item.id})
end
test "creates and returns a download task record", %{media_item: media_item} do
assert {:ok, task} = DownloadingHelpers.kickoff_download_if_pending(media_item)
assert [found_task] = Tasks.list_tasks_for(media_item, "MediaDownloadWorker")
assert task.id == found_task.id
end
test "does not enqueue a download job if the source does not allow it" do
source = source_fixture(%{download_media: false})
media_item = media_item_fixture(source_id: source.id, media_filepath: nil)
assert {:error, :should_not_download} = DownloadingHelpers.kickoff_download_if_pending(media_item)
refute_enqueued(worker: MediaDownloadWorker)
end
test "does not enqueue a download job if the media item does not match the format rules" do
profile = media_profile_fixture(%{livestream_behaviour: :exclude})
source = source_fixture(%{media_profile_id: profile.id})
media_item = media_item_fixture(source_id: source.id, media_filepath: nil, livestream: true)
assert {:error, :should_not_download} = DownloadingHelpers.kickoff_download_if_pending(media_item)
refute_enqueued(worker: MediaDownloadWorker)
end
end
end