33baa99aae
* [WIP] break out a few contexts, start refactoring fast index modules * [WIP] more contexts, this time around slow indexing and downloads * [WIP] got all tests passing * [WIP] Added moduledocs * Built a genserver to rename old jobs on boot * Added a module naming check; moved things around * Fixed specs
71 lines
1.9 KiB
Elixir
71 lines
1.9 KiB
Elixir
defmodule Pinchflat.Boot.DataBackfillWorkerTest do
|
|
use Pinchflat.DataCase
|
|
|
|
import Pinchflat.MediaFixtures
|
|
|
|
alias Pinchflat.Boot.DataBackfillWorker
|
|
alias Pinchflat.Filesystem.FilesystemDataWorker
|
|
|
|
describe "cancel_pending_backfill_jobs/0" do
|
|
test "cancels all pending backfill jobs" do
|
|
%{}
|
|
|> DataBackfillWorker.new()
|
|
|> Repo.insert_unique_job()
|
|
|
|
assert_enqueued(worker: DataBackfillWorker)
|
|
|
|
DataBackfillWorker.cancel_pending_backfill_jobs()
|
|
|
|
refute_enqueued(worker: DataBackfillWorker)
|
|
end
|
|
|
|
test "does not cancel jobs for other workers" do
|
|
%{id: 0}
|
|
|> FilesystemDataWorker.new()
|
|
|> Repo.insert_unique_job()
|
|
|
|
assert_enqueued(worker: FilesystemDataWorker)
|
|
|
|
DataBackfillWorker.cancel_pending_backfill_jobs()
|
|
|
|
assert_enqueued(worker: FilesystemDataWorker)
|
|
end
|
|
end
|
|
|
|
describe "perform/1" do
|
|
setup do
|
|
DataBackfillWorker.cancel_pending_backfill_jobs()
|
|
|
|
:ok
|
|
end
|
|
|
|
test "reschedules itself once complete" do
|
|
perform_job(DataBackfillWorker, %{})
|
|
|
|
assert_enqueued(worker: DataBackfillWorker, scheduled_at: now_plus(60, :minutes))
|
|
end
|
|
end
|
|
|
|
describe "perform/1 when testing backfill_shorts_data" do
|
|
test "sets short_form_content to true for media items with shorts in the URL" do
|
|
media_item = media_item_with_attachments(%{original_url: "https://example.com/shorts/123"})
|
|
|
|
refute media_item.short_form_content
|
|
|
|
perform_job(DataBackfillWorker, %{})
|
|
|
|
assert Repo.reload!(media_item).short_form_content
|
|
end
|
|
|
|
test "does not set short_form_content to true for media items without shorts in the URL" do
|
|
media_item = media_item_with_attachments(%{original_url: "https://example.com/longs/123"})
|
|
|
|
refute media_item.short_form_content
|
|
|
|
perform_job(DataBackfillWorker, %{})
|
|
|
|
refute Repo.reload!(media_item).short_form_content
|
|
end
|
|
end
|
|
end
|