summaryrefslogtreecommitdiff
path: root/test/emails/admin_email_test.exs
blob: e24231e270553340075277cca73edb8cf4e5c2bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# Pleroma: A lightweight social networking server
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only

defmodule Pleroma.Emails.AdminEmailTest do
  use Pleroma.DataCase
  import Pleroma.Factory

  alias Pleroma.Emails.AdminEmail
  alias Pleroma.Web.Router.Helpers

  test "build report email" do
    config = Pleroma.Config.get(:instance)
    to_user = insert(:user)
    reporter = insert(:user)
    account = insert(:user)

    res =
      AdminEmail.report(to_user, reporter, account, [%{name: "Test", id: "12"}], "Test comment")

    status_url = Helpers.o_status_url(Pleroma.Web.Endpoint, :notice, "12")
    reporter_url = Helpers.user_feed_url(Pleroma.Web.Endpoint, :feed_redirect, reporter.id)
    account_url = Helpers.user_feed_url(Pleroma.Web.Endpoint, :feed_redirect, account.id)

    assert res.to == [{to_user.name, to_user.email}]
    assert res.from == {config[:name], config[:notify_email]}
    assert res.subject == "#{config[:name]} Report"

    assert res.html_body ==
             "<p>Reported by: <a href=\"#{reporter_url}\">#{reporter.nickname}</a></p>\n<p>Reported Account: <a href=\"#{
               account_url
             }\">#{account.nickname}</a></p>\n<p>Comment: Test comment\n<p> Statuses:\n  <ul>\n    <li><a href=\"#{
               status_url
             }\">#{status_url}</li>\n  </ul>\n</p>\n\n<p>\n<a href=\"http://localhost:4001/pleroma/admin/#/reports/index\">View Reports in AdminFE</a>\n"
  end

  test "it works when the reporter is a remote user without email" do
    config = Pleroma.Config.get(:instance)
    to_user = insert(:user)
    reporter = insert(:user, email: nil, local: false)
    account = insert(:user)

    res =
      AdminEmail.report(to_user, reporter, account, [%{name: "Test", id: "12"}], "Test comment")

    assert res.to == [{to_user.name, to_user.email}]
    assert res.from == {config[:name], config[:notify_email]}
  end

  test "new unapproved registration email" do
    config = Pleroma.Config.get(:instance)
    to_user = insert(:user)
    account = insert(:user, registration_reason: "Plz let me in")

    res = AdminEmail.new_unapproved_registration(to_user, account)

    account_url = Helpers.user_feed_url(Pleroma.Web.Endpoint, :feed_redirect, account.id)

    assert res.to == [{to_user.name, to_user.email}]
    assert res.from == {config[:name], config[:notify_email]}
    assert res.subject == "New account up for review on #{config[:name]} (@#{account.nickname})"

    assert res.html_body == """
           <p>New account for review: <a href="#{account_url}">@#{account.nickname}</a></p>
           <blockquote>Plz let me in</blockquote>
           <a href="http://localhost:4001/pleroma/admin">Visit AdminFE</a>
           """
  end
end