Refactor User.post_register_action/1 emails
[akkoma] / test / tasks / digest_test.exs
1 defmodule Mix.Tasks.Pleroma.DigestTest do
2 use Pleroma.DataCase
3
4 import Pleroma.Factory
5 import Swoosh.TestAssertions
6
7 alias Pleroma.Tests.ObanHelpers
8 alias Pleroma.Web.CommonAPI
9
10 setup_all do
11 Mix.shell(Mix.Shell.Process)
12
13 on_exit(fn ->
14 Mix.shell(Mix.Shell.IO)
15 end)
16
17 :ok
18 end
19
20 setup do: clear_config([Pleroma.Emails.Mailer, :enabled], true)
21
22 describe "pleroma.digest test" do
23 test "Sends digest to the given user" do
24 user1 = insert(:user)
25 user2 = insert(:user)
26
27 Enum.each(0..10, fn i ->
28 {:ok, _activity} =
29 CommonAPI.post(user1, %{
30 status: "hey ##{i} @#{user2.nickname}!"
31 })
32 end)
33
34 yesterday =
35 NaiveDateTime.add(
36 NaiveDateTime.truncate(NaiveDateTime.utc_now(), :second),
37 -60 * 60 * 24,
38 :second
39 )
40
41 {:ok, yesterday_date} = Timex.format(yesterday, "%F", :strftime)
42
43 :ok = Mix.Tasks.Pleroma.Digest.run(["test", user2.nickname, yesterday_date])
44
45 ObanHelpers.perform_all()
46
47 assert_receive {:mix_shell, :info, [message]}
48 assert message =~ "Digest email have been sent"
49
50 assert_email_sent(
51 to: {user2.name, user2.email},
52 html_body: ~r/here is what you've missed!/i
53 )
54 end
55 end
56 end