Fork of Pleroma with site-specific changes and feature branches https://git.pleroma.social/pleroma/pleroma
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.5KB

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