1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
5 defmodule Mix.Tasks.Pleroma.EmailTest do
8 import Swoosh.TestAssertions
11 alias Pleroma.Tests.ObanHelpers
13 import Pleroma.Factory
16 Mix.shell(Mix.Shell.Process)
19 Mix.shell(Mix.Shell.IO)
25 setup do: clear_config([Pleroma.Emails.Mailer, :enabled], true)
26 setup do: clear_config([:instance, :account_activation_required], true)
28 describe "pleroma.email test" do
29 test "Sends test email with no given address" do
30 mail_to = Config.get([:instance, :email])
32 :ok = Mix.Tasks.Pleroma.Email.run(["test"])
34 ObanHelpers.perform_all()
36 assert_receive {:mix_shell, :info, [message]}
37 assert message =~ "Test email has been sent"
41 html_body: ~r/a test email was requested./i
45 test "Sends test email with given address" do
46 mail_to = "hewwo@example.com"
48 :ok = Mix.Tasks.Pleroma.Email.run(["test", "--to", mail_to])
50 ObanHelpers.perform_all()
52 assert_receive {:mix_shell, :info, [message]}
53 assert message =~ "Test email has been sent"
57 html_body: ~r/a test email was requested./i
61 test "Sends confirmation emails" do
65 confirmation_token: "mytoken",
67 email: "local1@pleroma.com",
74 confirmation_token: "mytoken",
76 email: "local2@pleroma.com",
80 :ok = Mix.Tasks.Pleroma.Email.run(["resend_confirmation_emails"])
82 ObanHelpers.perform_all()
84 assert_email_sent(to: {local_user1.name, local_user1.email})
85 assert_email_sent(to: {local_user2.name, local_user2.email})
88 test "Does not send confirmation email to inappropriate users" do
92 confirmation_token: "mytoken",
94 email: "confirmed@pleroma.com",
101 email: "remote@not-pleroma.com",
108 email: "deactivated@pleroma.com",
115 email: "invisible@pleroma.com",
120 :ok = Mix.Tasks.Pleroma.Email.run(["resend_confirmation_emails"])
122 ObanHelpers.perform_all()