pleroma/test/pleroma/workers/cron/new_users_digest_worker_tes...

51 lines
1.6 KiB
Elixir
Raw Normal View History

2020-01-22 17:31:42 +01:00
# Pleroma: A lightweight social networking server
2022-02-26 07:11:42 +01:00
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
2020-01-22 17:31:42 +01:00
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Workers.Cron.NewUsersDigestWorkerTest do
use Pleroma.DataCase, async: true
2020-01-22 17:31:42 +01:00
import Pleroma.Factory
alias Pleroma.Tests.ObanHelpers
alias Pleroma.Web.CommonAPI
2020-02-11 20:33:05 +01:00
alias Pleroma.Workers.Cron.NewUsersDigestWorker
2020-01-22 17:31:42 +01:00
setup do
Mox.stub_with(Pleroma.UnstubbedConfigMock, Pleroma.Config)
:ok
end
2020-01-22 17:31:42 +01:00
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})
2020-05-12 21:59:26 +02:00
CommonAPI.post(user, %{status: "cofe"})
2020-01-22 17:31:42 +01:00
2020-06-23 14:09:01 +02:00
NewUsersDigestWorker.perform(%Oban.Job{})
2020-01-22 17:31:42 +01:00
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.svg"
2020-01-22 17:31:42 +01:00
end
2020-02-27 14:27:49 +01:00
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})
2020-05-12 21:59:26 +02:00
CommonAPI.post(user, %{status: "cofe"})
2020-02-27 14:27:49 +01:00
2020-06-23 14:09:01 +02:00
NewUsersDigestWorker.perform(%Oban.Job{})
2020-02-27 14:27:49 +01:00
ObanHelpers.perform_all()
end
2020-01-22 17:31:42 +01:00
end