1a80109d4c60308402f977cac76d03b3cd933828
[akkoma] / test / user / welcome_email_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 Pleroma.User.WelcomeEmailTest do
6 use Pleroma.DataCase
7
8 alias Pleroma.Config
9 alias Pleroma.Tests.ObanHelpers
10 alias Pleroma.User.WelcomeEmail
11
12 import Pleroma.Factory
13 import Swoosh.TestAssertions
14
15 setup do: clear_config([:welcome])
16
17 describe "send_email/1" do
18 test "send a welcome email" do
19 welcome_user = insert(:user)
20 user = insert(:user, name: "Jimm")
21
22 Config.put([:welcome, :email, :enabled], true)
23 Config.put([:welcome, :email, :sender_nickname], welcome_user.nickname)
24
25 Config.put(
26 [:welcome, :email, :subject],
27 "Hello, welcome to pleroma: <%= instance_name %>"
28 )
29
30 Config.put(
31 [:welcome, :email, :html],
32 "<h1>Hello <%= user.name %>.</h1> <p>Welcome to <%= instance_name %></p>"
33 )
34
35 instance_name = Config.get([:instance, :name])
36
37 {:ok, _job} = WelcomeEmail.send_email(user)
38
39 ObanHelpers.perform_all()
40
41 assert_email_sent(
42 from: {instance_name, welcome_user.email},
43 to: {user.name, user.email},
44 subject: "Hello, welcome to pleroma: #{instance_name}",
45 html_body: "<h1>Hello #{user.name}.</h1> <p>Welcome to #{instance_name}</p>"
46 )
47 end
48 end
49 end