1 defmodule Mix.Tasks.Pleroma.EmailTest do
4 import Swoosh.TestAssertions
7 alias Pleroma.Tests.ObanHelpers
12 Mix.shell(Mix.Shell.Process)
15 Mix.shell(Mix.Shell.IO)
21 setup do: clear_config([Pleroma.Emails.Mailer, :enabled], true)
22 setup do: clear_config([:instance, :account_activation_required], true)
24 describe "pleroma.email test" do
25 test "Sends test email with no given address" do
26 mail_to = Config.get([:instance, :email])
28 :ok = Mix.Tasks.Pleroma.Email.run(["test"])
30 ObanHelpers.perform_all()
32 assert_receive {:mix_shell, :info, [message]}
33 assert message =~ "Test email has been sent"
37 html_body: ~r/a test email was requested./i
41 test "Sends test email with given address" do
42 mail_to = "hewwo@example.com"
44 :ok = Mix.Tasks.Pleroma.Email.run(["test", "--to", mail_to])
46 ObanHelpers.perform_all()
48 assert_receive {:mix_shell, :info, [message]}
49 assert message =~ "Test email has been sent"
53 html_body: ~r/a test email was requested./i
57 test "Sends confirmation emails" do
60 confirmation_pending: true,
61 confirmation_token: "mytoken",
63 email: "local1@pleroma.com",
69 confirmation_pending: true,
70 confirmation_token: "mytoken",
72 email: "local2@pleroma.com",
76 :ok = Mix.Tasks.Pleroma.Email.run(["resend_confirmation_emails"])
78 ObanHelpers.perform_all()
80 assert_email_sent(to: {local_user1.name, local_user1.email})
81 assert_email_sent(to: {local_user2.name, local_user2.email})
84 test "Does not send confirmation email to inappropriate users" do
87 confirmation_pending: false,
88 confirmation_token: "mytoken",
90 email: "confirmed@pleroma.com",
97 email: "remote@not-pleroma.com",
104 email: "deactivated@pleroma.com",
111 email: "invisible@pleroma.com",
116 :ok = Mix.Tasks.Pleroma.Email.run(["resend_confirmation_emails"])
118 ObanHelpers.perform_all()