akkoma/test/mix/tasks/pleroma/digest_test.exs

67 lines
1.6 KiB
Elixir
Raw Normal View History

2020-10-12 11:00:50 -06:00
# Pleroma: A lightweight social networking server
# Copyright © 2017-2023 Pleroma Authors <https://pleroma.social/>
2020-10-12 11:00:50 -06:00
# SPDX-License-Identifier: AGPL-3.0-only
2019-06-03 17:48:21 -06:00
defmodule Mix.Tasks.Pleroma.DigestTest do
use Pleroma.DataCase
import Pleroma.Factory
import Swoosh.TestAssertions
alias Pleroma.Tests.ObanHelpers
2019-06-03 17:48:21 -06:00
alias Pleroma.Web.CommonAPI
setup_all do
Mix.shell(Mix.Shell.Process)
on_exit(fn ->
Mix.shell(Mix.Shell.IO)
end)
:ok
end
2020-08-19 03:57:29 -06:00
setup do: clear_config([Pleroma.Emails.Mailer, :enabled], true)
2019-06-03 17:48:21 -06:00
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, %{
2020-05-12 13:59:26 -06:00
status: "hey ##{i} @#{user2.nickname}!"
2019-06-03 17:48:21 -06:00
})
end)
2019-06-03 18:38:53 -06:00
yesterday =
NaiveDateTime.add(
NaiveDateTime.truncate(NaiveDateTime.utc_now(), :second),
-60 * 60 * 24,
:second
)
2019-06-03 17:48:21 -06:00
2019-06-03 18:38:53 -06:00
{:ok, yesterday_date} = Timex.format(yesterday, "%F", :strftime)
:ok = Mix.Tasks.Pleroma.Digest.run(["test", user2.nickname, yesterday_date])
ObanHelpers.perform_all()
2019-06-03 18:38:53 -06:00
assert_receive {:mix_shell, :info, [message]}
2019-06-03 18:07:49 -06:00
assert message =~ "Digest email have been sent"
2019-06-03 17:48:21 -06:00
assert_email_sent(
to: {user2.name, user2.email},
2022-03-01 18:27:45 -07:00
html_body:
Regex.compile!(
"here is what you've missed!"
|> Phoenix.HTML.html_escape()
|> Phoenix.HTML.safe_to_string(),
"i"
)
2019-06-03 17:48:21 -06:00
)
end
end
end