distraction.party/test/pleroma/workers/scheduled_activity_worker_test.exs

58 lines
1.6 KiB
Elixir
Raw Normal View History

2020-01-23 08:05:08 +00:00
# Pleroma: A lightweight social networking server
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
2020-01-23 08:05:08 +00:00
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Workers.ScheduledActivityWorkerTest do
use Pleroma.DataCase
alias Pleroma.ScheduledActivity
alias Pleroma.Workers.ScheduledActivityWorker
import Pleroma.Factory
import ExUnit.CaptureLog
2021-02-01 15:22:26 +00:00
setup do: clear_config([ScheduledActivity, :enabled], true)
2020-01-23 08:05:08 +00:00
test "creates a status from the scheduled activity" do
user = insert(:user)
naive_datetime =
NaiveDateTime.add(
NaiveDateTime.utc_now(),
-:timer.minutes(2),
:millisecond
)
scheduled_activity =
insert(
:scheduled_activity,
scheduled_at: naive_datetime,
user: user,
params: %{status: "hi"}
)
2021-02-01 15:22:26 +00:00
{:ok, %{id: activity_id}} =
ScheduledActivityWorker.perform(%Oban.Job{args: %{"activity_id" => scheduled_activity.id}})
2020-01-23 08:05:08 +00:00
refute Repo.get(ScheduledActivity, scheduled_activity.id)
2021-02-01 15:22:26 +00:00
object =
Pleroma.Activity
|> Repo.get(activity_id)
|> Pleroma.Object.normalize()
assert object.data["content"] == "hi"
end
2020-01-23 08:05:08 +00:00
2021-02-01 15:22:26 +00:00
test "error message for non-existent scheduled activity" do
2020-01-23 08:05:08 +00:00
assert capture_log([level: :error], fn ->
2020-06-23 12:09:01 +00:00
ScheduledActivityWorker.perform(%Oban.Job{args: %{"activity_id" => 42}})
2021-02-01 15:22:26 +00:00
end) =~ "Couldn't find scheduled activity: 42"
2020-01-23 08:05:08 +00:00
end
test "has a timeout" do
clear_config([:workers, :timeout, :scheduled_activities], :timer.minutes(5))
assert ScheduledActivityWorker.timeout(nil) == :timer.minutes(5)
end
2020-01-23 08:05:08 +00:00
end