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