Add task to test emails
[akkoma] / test / mix / tasks / pleroma.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.Web.CommonAPI
8
9 setup_all do
10 Mix.shell(Mix.Shell.Process)
11
12 on_exit(fn ->
13 Mix.shell(Mix.Shell.IO)
14 end)
15
16 :ok
17 end
18
19 describe "pleroma.digest test" do
20 test "Sends digest to the given user" do
21 user1 = insert(:user)
22 user2 = insert(:user)
23
24 Enum.each(0..10, fn i ->
25 {:ok, _activity} =
26 CommonAPI.post(user1, %{
27 "status" => "hey ##{i} @#{user2.nickname}!"
28 })
29 end)
30
31 Mix.Tasks.Pleroma.Digest.run(["test", user2.nickname])
32
33 assert_email_sent(
34 to: {user2.name, user2.email},
35 html_body: ~r/new mentions:/i
36 )
37
38 assert_received {:mix_shell, :info, [message]}
39 assert message =~ "Digest email have been sent"
40 end
41 end
42 end