fix for unique oban worker option
[akkoma] / test / pleroma / workers / scheduled_activity_worker_test.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Workers.ScheduledActivityWorkerTest do
6 use Pleroma.DataCase
7
8 alias Pleroma.ScheduledActivity
9 alias Pleroma.Workers.ScheduledActivityWorker
10
11 import Pleroma.Factory
12 import ExUnit.CaptureLog
13
14 setup do: clear_config([ScheduledActivity, :enabled])
15
16 test "creates a status from the scheduled activity" do
17 Pleroma.Config.put([ScheduledActivity, :enabled], true)
18 user = insert(:user)
19
20 naive_datetime =
21 NaiveDateTime.add(
22 NaiveDateTime.utc_now(),
23 -:timer.minutes(2),
24 :millisecond
25 )
26
27 scheduled_activity =
28 insert(
29 :scheduled_activity,
30 scheduled_at: naive_datetime,
31 user: user,
32 params: %{status: "hi"}
33 )
34
35 ScheduledActivityWorker.perform(%Oban.Job{args: %{"activity_id" => scheduled_activity.id}})
36
37 refute Repo.get(ScheduledActivity, scheduled_activity.id)
38 activity = Repo.all(Pleroma.Activity) |> Enum.find(&(&1.actor == user.ap_id))
39 assert Pleroma.Object.normalize(activity, fetch: false).data["content"] == "hi"
40 end
41
42 test "adds log message if ScheduledActivity isn't find" do
43 Pleroma.Config.put([ScheduledActivity, :enabled], true)
44
45 assert capture_log([level: :error], fn ->
46 ScheduledActivityWorker.perform(%Oban.Job{args: %{"activity_id" => 42}})
47 end) =~ "Couldn't find scheduled activity"
48 end
49 end