tests consistency
This commit is contained in:
parent
6bf85440b3
commit
7dffaef479
258 changed files with 38 additions and 37 deletions
54
test/pleroma/workers/cron/digest_emails_worker_test.exs
Normal file
54
test/pleroma/workers/cron/digest_emails_worker_test.exs
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
# Pleroma: A lightweight social networking server
|
||||
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
defmodule Pleroma.Workers.Cron.DigestEmailsWorkerTest do
|
||||
use Pleroma.DataCase
|
||||
|
||||
import Pleroma.Factory
|
||||
|
||||
alias Pleroma.Tests.ObanHelpers
|
||||
alias Pleroma.User
|
||||
alias Pleroma.Web.CommonAPI
|
||||
|
||||
setup do: clear_config([:email_notifications, :digest])
|
||||
|
||||
setup do
|
||||
Pleroma.Config.put([:email_notifications, :digest], %{
|
||||
active: true,
|
||||
inactivity_threshold: 7,
|
||||
interval: 7
|
||||
})
|
||||
|
||||
user = insert(:user)
|
||||
|
||||
date =
|
||||
Timex.now()
|
||||
|> Timex.shift(days: -10)
|
||||
|> Timex.to_naive_datetime()
|
||||
|
||||
user2 = insert(:user, last_digest_emailed_at: date)
|
||||
{:ok, _} = User.switch_email_notifications(user2, "digest", true)
|
||||
CommonAPI.post(user, %{status: "hey @#{user2.nickname}!"})
|
||||
|
||||
{:ok, user2: user2}
|
||||
end
|
||||
|
||||
test "it sends digest emails", %{user2: user2} do
|
||||
Pleroma.Workers.Cron.DigestEmailsWorker.perform(%Oban.Job{})
|
||||
# Performing job(s) enqueued at previous step
|
||||
ObanHelpers.perform_all()
|
||||
|
||||
assert_received {:email, email}
|
||||
assert email.to == [{user2.name, user2.email}]
|
||||
assert email.subject == "Your digest from #{Pleroma.Config.get(:instance)[:name]}"
|
||||
end
|
||||
|
||||
test "it doesn't fail when a user has no email", %{user2: user2} do
|
||||
{:ok, _} = user2 |> Ecto.Changeset.change(%{email: nil}) |> Pleroma.Repo.update()
|
||||
|
||||
Pleroma.Workers.Cron.DigestEmailsWorker.perform(%Oban.Job{})
|
||||
# Performing job(s) enqueued at previous step
|
||||
ObanHelpers.perform_all()
|
||||
end
|
||||
end
|
||||
45
test/pleroma/workers/cron/new_users_digest_worker_test.exs
Normal file
45
test/pleroma/workers/cron/new_users_digest_worker_test.exs
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
# Pleroma: A lightweight social networking server
|
||||
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
defmodule Pleroma.Workers.Cron.NewUsersDigestWorkerTest do
|
||||
use Pleroma.DataCase
|
||||
import Pleroma.Factory
|
||||
|
||||
alias Pleroma.Tests.ObanHelpers
|
||||
alias Pleroma.Web.CommonAPI
|
||||
alias Pleroma.Workers.Cron.NewUsersDigestWorker
|
||||
|
||||
test "it sends new users digest emails" do
|
||||
yesterday = NaiveDateTime.utc_now() |> Timex.shift(days: -1)
|
||||
admin = insert(:user, %{is_admin: true})
|
||||
user = insert(:user, %{inserted_at: yesterday})
|
||||
user2 = insert(:user, %{inserted_at: yesterday})
|
||||
CommonAPI.post(user, %{status: "cofe"})
|
||||
|
||||
NewUsersDigestWorker.perform(%Oban.Job{})
|
||||
ObanHelpers.perform_all()
|
||||
|
||||
assert_received {:email, email}
|
||||
assert email.to == [{admin.name, admin.email}]
|
||||
assert email.subject == "#{Pleroma.Config.get([:instance, :name])} New Users"
|
||||
|
||||
refute email.html_body =~ admin.nickname
|
||||
assert email.html_body =~ user.nickname
|
||||
assert email.html_body =~ user2.nickname
|
||||
assert email.html_body =~ "cofe"
|
||||
assert email.html_body =~ "#{Pleroma.Web.Endpoint.url()}/static/logo.png"
|
||||
end
|
||||
|
||||
test "it doesn't fail when admin has no email" do
|
||||
yesterday = NaiveDateTime.utc_now() |> Timex.shift(days: -1)
|
||||
insert(:user, %{is_admin: true, email: nil})
|
||||
insert(:user, %{inserted_at: yesterday})
|
||||
user = insert(:user, %{inserted_at: yesterday})
|
||||
|
||||
CommonAPI.post(user, %{status: "cofe"})
|
||||
|
||||
NewUsersDigestWorker.perform(%Oban.Job{})
|
||||
ObanHelpers.perform_all()
|
||||
end
|
||||
end
|
||||
49
test/pleroma/workers/scheduled_activity_worker_test.exs
Normal file
49
test/pleroma/workers/scheduled_activity_worker_test.exs
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
# Pleroma: A lightweight social networking server
|
||||
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
|
||||
# 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
|
||||
|
||||
setup do: clear_config([ScheduledActivity, :enabled])
|
||||
|
||||
test "creates a status from the scheduled activity" do
|
||||
Pleroma.Config.put([ScheduledActivity, :enabled], true)
|
||||
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"}
|
||||
)
|
||||
|
||||
ScheduledActivityWorker.perform(%Oban.Job{args: %{"activity_id" => scheduled_activity.id}})
|
||||
|
||||
refute Repo.get(ScheduledActivity, scheduled_activity.id)
|
||||
activity = Repo.all(Pleroma.Activity) |> Enum.find(&(&1.actor == user.ap_id))
|
||||
assert Pleroma.Object.normalize(activity).data["content"] == "hi"
|
||||
end
|
||||
|
||||
test "adds log message if ScheduledActivity isn't find" do
|
||||
Pleroma.Config.put([ScheduledActivity, :enabled], true)
|
||||
|
||||
assert capture_log([level: :error], fn ->
|
||||
ScheduledActivityWorker.perform(%Oban.Job{args: %{"activity_id" => 42}})
|
||||
end) =~ "Couldn't find scheduled activity"
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue