Added way to track media filesize (#48)
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
defmodule Pinchflat.Tasks.MediaItemTasksTest do
|
||||
use Pinchflat.DataCase
|
||||
|
||||
import Pinchflat.MediaFixtures
|
||||
|
||||
alias Pinchflat.Tasks.MediaItemTasks
|
||||
|
||||
describe "compute_and_save_media_filesize/1" do
|
||||
test "updates the media item with the file size" do
|
||||
media_item = media_item_with_attachments()
|
||||
|
||||
refute media_item.media_size_bytes
|
||||
|
||||
assert {:ok, media_item} = MediaItemTasks.compute_and_save_media_filesize(media_item)
|
||||
|
||||
assert Repo.reload!(media_item).media_size_bytes
|
||||
end
|
||||
|
||||
test "returns the error if operation fails" do
|
||||
media_item = media_item_fixture(%{media_filepath: "/nonexistent/file.mkv"})
|
||||
|
||||
assert {:error, _} = MediaItemTasks.compute_and_save_media_filesize(media_item)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,19 @@
|
||||
defmodule Pinchflat.Workers.FilesystemDataWorkerTest do
|
||||
use Pinchflat.DataCase
|
||||
|
||||
import Pinchflat.MediaFixtures
|
||||
|
||||
alias Pinchflat.Workers.FilesystemDataWorker
|
||||
|
||||
describe "perform/1" do
|
||||
test "Computes and stores the media file size" do
|
||||
media_item = media_item_with_attachments()
|
||||
|
||||
refute media_item.media_size_bytes
|
||||
|
||||
perform_job(FilesystemDataWorker, %{id: media_item.id})
|
||||
|
||||
assert Repo.reload!(media_item).media_size_bytes
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -6,6 +6,7 @@ defmodule Pinchflat.Workers.VideoDownloadWorkerTest do
|
||||
|
||||
alias Pinchflat.Sources
|
||||
alias Pinchflat.Workers.VideoDownloadWorker
|
||||
alias Pinchflat.Workers.FilesystemDataWorker
|
||||
|
||||
setup :verify_on_exit!
|
||||
|
||||
@@ -68,5 +69,17 @@ defmodule Pinchflat.Workers.VideoDownloadWorkerTest do
|
||||
|
||||
perform_job(VideoDownloadWorker, %{id: media_item.id})
|
||||
end
|
||||
|
||||
test "it schedules a filesystem data worker", %{media_item: media_item} do
|
||||
expect(YtDlpRunnerMock, :run, fn _url, _opts, _ot ->
|
||||
{:ok, render_metadata(:media_metadata)}
|
||||
end)
|
||||
|
||||
assert [] = all_enqueued(worker: FilesystemDataWorker)
|
||||
|
||||
perform_job(VideoDownloadWorker, %{id: media_item.id})
|
||||
|
||||
assert [_] = all_enqueued(worker: FilesystemDataWorker)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user