commit: 5b04c2bf131f70120c407f5b4c242e3d245151f8
parent 03a6e33b81281256f2e9b6ffb75910fdd1a7894f
Author: Mark Felder <feld@feld.me>
Date: Wed, 9 Oct 2024 20:15:00 -0400
Test the final refresh behavior of a PollWorker poll_end job
Diffstat:
2 files changed, 30 insertions(+), 5 deletions(-)
diff --git a/test/pleroma/workers/poll_worker_test.exs b/test/pleroma/workers/poll_worker_test.exs
@@ -11,10 +11,10 @@ defmodule Pleroma.Workers.PollWorkerTest do
alias Pleroma.Workers.PollWorker
- test "poll notification job" do
+ test "local poll ending notification job" do
user = insert(:user)
question = insert(:question, user: user)
- activity = insert(:question_activity, question: question)
+ activity = insert(:question_activity, question: question, user: user)
PollWorker.schedule_poll_end(activity)
@@ -45,14 +45,38 @@ defmodule Pleroma.Workers.PollWorkerTest do
assert called(Pleroma.Web.Streamer.stream(["user", "user:notification"], :_))
assert called(Pleroma.Web.Push.send(:_))
- # Ensure we scheduled a final refresh of the poll
- assert_enqueued(
+ # Skip refreshing polls for local activities
+ assert activity.local
+
+ refute_enqueued(
worker: PollWorker,
args: %{"op" => "refresh", "activity_id" => activity.id}
)
end
end
+ test "remote poll ending notification job schedules refresh" do
+ user = insert(:user, local: false)
+ question = insert(:question, user: user)
+ activity = insert(:question_activity, question: question, user: user)
+
+ PollWorker.schedule_poll_end(activity)
+
+ expected_job_args = %{"activity_id" => activity.id, "op" => "poll_end"}
+
+ assert_enqueued(args: expected_job_args)
+
+ [job] = all_enqueued(worker: PollWorker)
+ PollWorker.perform(job)
+
+ refute activity.local
+
+ assert_enqueued(
+ worker: PollWorker,
+ args: %{"op" => "refresh", "activity_id" => activity.id}
+ )
+ end
+
test "poll refresh" do
user = insert(:user, local: false)
question = insert(:question, user: user)
diff --git a/test/support/factory.ex b/test/support/factory.ex
@@ -510,7 +510,8 @@ defmodule Pleroma.Factory do
%Pleroma.Activity{
data: data,
actor: data["actor"],
- recipients: data["to"]
+ recipients: data["to"],
+ local: user.local
}
|> Map.merge(attrs)
end