Pipeline Ingestion: Article
[akkoma] / test / application_requirements_test.exs
index 481cdfd73e6217e8b7900dfcd082fa0fa6951534..21d24ddd069514d2aa67f3855e9ecc21ddddd79a 100644 (file)
@@ -9,6 +9,56 @@ defmodule Pleroma.ApplicationRequirementsTest do
 
   alias Pleroma.Repo
 
+  describe "check_welcome_message_config!/1" do
+    setup do: clear_config([:welcome])
+    setup do: clear_config([Pleroma.Emails.Mailer])
+
+    test "raises if welcome email enabled but mail disabled" do
+      Pleroma.Config.put([:welcome, :email, :enabled], true)
+      Pleroma.Config.put([Pleroma.Emails.Mailer, :enabled], false)
+
+      assert_raise Pleroma.ApplicationRequirements.VerifyError, "The mail disabled.", fn ->
+        capture_log(&Pleroma.ApplicationRequirements.verify!/0)
+      end
+    end
+  end
+
+  describe "check_confirmation_accounts!" do
+    setup_with_mocks([
+      {Pleroma.ApplicationRequirements, [:passthrough],
+       [
+         check_migrations_applied!: fn _ -> :ok end
+       ]}
+    ]) do
+      :ok
+    end
+
+    setup do: clear_config([:instance, :account_activation_required])
+
+    test "raises if account confirmation is required but mailer isn't enable" do
+      Pleroma.Config.put([:instance, :account_activation_required], true)
+      Pleroma.Config.put([Pleroma.Emails.Mailer, :enabled], false)
+
+      assert_raise Pleroma.ApplicationRequirements.VerifyError,
+                   "Account activation enabled, but Mailer is disabled. Cannot send confirmation emails.",
+                   fn ->
+                     capture_log(&Pleroma.ApplicationRequirements.verify!/0)
+                   end
+    end
+
+    test "doesn't do anything if account confirmation is disabled" do
+      Pleroma.Config.put([:instance, :account_activation_required], false)
+      Pleroma.Config.put([Pleroma.Emails.Mailer, :enabled], false)
+      assert Pleroma.ApplicationRequirements.verify!() == :ok
+    end
+
+    test "doesn't do anything if account confirmation is required and mailer is enabled" do
+      Pleroma.Config.put([:instance, :account_activation_required], true)
+      Pleroma.Config.put([Pleroma.Emails.Mailer, :enabled], true)
+      assert Pleroma.ApplicationRequirements.verify!() == :ok
+    end
+  end
+
   describe "check_rum!" do
     setup_with_mocks([
       {Pleroma.ApplicationRequirements, [:passthrough],