summaryrefslogtreecommitdiff
path: root/test/pleroma/user/welcome_email_test.exs
blob: c3d383a7f39e9968e13e9c2fcd541081adb43d9b (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
# Pleroma: A lightweight social networking server
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only

defmodule Pleroma.User.WelcomeEmailTest do
  use Pleroma.DataCase

  alias Pleroma.Config
  alias Pleroma.Tests.ObanHelpers
  alias Pleroma.User.WelcomeEmail

  import Pleroma.Factory
  import Swoosh.TestAssertions

  setup do: clear_config([:welcome])

  describe "send_email/1" do
    test "send a welcome email" do
      user = insert(:user, name: "Jimm")

      clear_config([:welcome, :email, :enabled], true)
      clear_config([:welcome, :email, :sender], "welcome@pleroma.app")

      clear_config(
        [:welcome, :email, :subject],
        "Hello, welcome to pleroma: <%= instance_name %>"
      )

      clear_config(
        [:welcome, :email, :html],
        "<h1>Hello <%= user.name %>.</h1> <p>Welcome to <%= instance_name %></p>"
      )

      instance_name = Config.get([:instance, :name])

      {:ok, _job} = WelcomeEmail.send_email(user)

      ObanHelpers.perform_all()

      assert_email_sent(
        from: {instance_name, "welcome@pleroma.app"},
        to: {user.name, user.email},
        subject: "Hello, welcome to pleroma: #{instance_name}",
        html_body: "<h1>Hello #{user.name}.</h1> <p>Welcome to #{instance_name}</p>"
      )

      clear_config([:welcome, :email, :sender], {"Pleroma App", "welcome@pleroma.app"})

      {:ok, _job} = WelcomeEmail.send_email(user)

      ObanHelpers.perform_all()

      assert_email_sent(
        from: {"Pleroma App", "welcome@pleroma.app"},
        to: {user.name, user.email},
        subject: "Hello, welcome to pleroma: #{instance_name}",
        html_body: "<h1>Hello #{user.name}.</h1> <p>Welcome to #{instance_name}</p>"
      )
    end
  end
end