67 lines
1.6 KiB
Elixir
67 lines
1.6 KiB
Elixir
# Pleroma: A lightweight social networking server
|
|
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
defmodule Mix.Tasks.Pleroma.DigestTest do
|
|
use Pleroma.DataCase
|
|
|
|
import Pleroma.Factory
|
|
import Swoosh.TestAssertions
|
|
|
|
alias Pleroma.Tests.ObanHelpers
|
|
alias Pleroma.Web.CommonAPI
|
|
|
|
setup_all do
|
|
Mix.shell(Mix.Shell.Process)
|
|
|
|
on_exit(fn ->
|
|
Mix.shell(Mix.Shell.IO)
|
|
end)
|
|
|
|
:ok
|
|
end
|
|
|
|
setup do: clear_config([Pleroma.Emails.Mailer, :enabled], true)
|
|
|
|
describe "pleroma.digest test" do
|
|
test "Sends digest to the given user" do
|
|
user1 = insert(:user)
|
|
user2 = insert(:user)
|
|
|
|
Enum.each(0..10, fn i ->
|
|
{:ok, _activity} =
|
|
CommonAPI.post(user1, %{
|
|
status: "hey ##{i} @#{user2.nickname}!"
|
|
})
|
|
end)
|
|
|
|
yesterday =
|
|
NaiveDateTime.add(
|
|
NaiveDateTime.truncate(NaiveDateTime.utc_now(), :second),
|
|
-60 * 60 * 24,
|
|
:second
|
|
)
|
|
|
|
{:ok, yesterday_date} = Timex.format(yesterday, "%F", :strftime)
|
|
|
|
:ok = Mix.Tasks.Pleroma.Digest.run(["test", user2.nickname, yesterday_date])
|
|
|
|
ObanHelpers.perform_all()
|
|
|
|
assert_receive {:mix_shell, :info, [message]}
|
|
assert message =~ "Digest email have been sent"
|
|
|
|
assert_email_sent(
|
|
to: {user2.name, user2.email},
|
|
html_body:
|
|
Regex.compile!(
|
|
"here is what you've missed!"
|
|
|> Phoenix.HTML.html_escape()
|
|
|> Phoenix.HTML.safe_to_string(),
|
|
"i"
|
|
)
|
|
)
|
|
end
|
|
end
|
|
end
|