akkoma/test/tasks/digest_test.exs

57 lines
1.3 KiB
Elixir
Raw Normal View History

2019-06-03 23:48:21 +00:00
defmodule Mix.Tasks.Pleroma.DigestTest do
use Pleroma.DataCase
import Pleroma.Factory
import Swoosh.TestAssertions
alias Pleroma.Tests.ObanHelpers
2019-06-03 23:48:21 +00: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 09:57:29 +00:00
setup do: clear_config([Pleroma.Emails.Mailer, :enabled], true)
2019-06-03 23:48:21 +00: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 19:59:26 +00:00
status: "hey ##{i} @#{user2.nickname}!"
2019-06-03 23:48:21 +00:00
})
end)
2019-06-04 00:38:53 +00:00
yesterday =
NaiveDateTime.add(
NaiveDateTime.truncate(NaiveDateTime.utc_now(), :second),
-60 * 60 * 24,
:second
)
2019-06-03 23:48:21 +00:00
2019-06-04 00:38:53 +00: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-04 00:38:53 +00:00
assert_receive {:mix_shell, :info, [message]}
2019-06-04 00:07:49 +00:00
assert message =~ "Digest email have been sent"
2019-06-03 23:48:21 +00:00
assert_email_sent(
to: {user2.name, user2.email},
2019-08-14 13:46:05 +00:00
html_body: ~r/here is what you've missed!/i
2019-06-03 23:48:21 +00:00
)
end
end
end