optimise notifications query
[akkoma] / test / pleroma / application_requirements_test.exs
index c505ae229c552aa9a6e8f83bfc4c82c8ae6ff769..a54c379681d4b9c9763342142cd4974feb0b89c0 100644 (file)
@@ -1,5 +1,5 @@
 # Pleroma: A lightweight social networking server
 # Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.ApplicationRequirementsTest do
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.ApplicationRequirementsTest do
@@ -9,20 +9,39 @@ defmodule Pleroma.ApplicationRequirementsTest do
   import Mock
 
   alias Pleroma.ApplicationRequirements
   import Mock
 
   alias Pleroma.ApplicationRequirements
-  alias Pleroma.Config
   alias Pleroma.Repo
 
   alias Pleroma.Repo
 
+  describe "check_repo_pool_size!/1" do
+    test "raises if the pool size is unexpected" do
+      clear_config([Pleroma.Repo, :pool_size], 11)
+      clear_config([:dangerzone, :override_repo_pool_size], false)
+
+      assert_raise Pleroma.ApplicationRequirements.VerifyError,
+                   "Repo.pool_size different than recommended value.",
+                   fn ->
+                     capture_log(&Pleroma.ApplicationRequirements.verify!/0)
+                   end
+    end
+
+    test "doesn't raise if the pool size is unexpected but the respective flag is set" do
+      clear_config([Pleroma.Repo, :pool_size], 11)
+      clear_config([:dangerzone, :override_repo_pool_size], true)
+
+      assert Pleroma.ApplicationRequirements.verify!() == :ok
+    end
+  end
+
   describe "check_welcome_message_config!/1" do
     setup do: clear_config([:welcome])
     setup do: clear_config([Pleroma.Emails.Mailer])
 
   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)
+    test "warns if welcome email enabled but mail disabled" do
+      clear_config([:welcome, :email, :enabled], true)
+      clear_config([Pleroma.Emails.Mailer, :enabled], false)
 
 
-      assert_raise Pleroma.ApplicationRequirements.VerifyError, "The mail disabled.", fn ->
-        capture_log(&Pleroma.ApplicationRequirements.verify!/0)
-      end
+      assert capture_log(fn ->
+               assert Pleroma.ApplicationRequirements.verify!() == :ok
+             end) =~ "Welcome emails will NOT be sent"
     end
   end
 
     end
   end
 
@@ -38,26 +57,24 @@ defmodule Pleroma.ApplicationRequirementsTest do
 
     setup do: clear_config([:instance, :account_activation_required])
 
 
     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)
+    test "warns if account confirmation is required but mailer isn't enabled" do
+      clear_config([:instance, :account_activation_required], true)
+      clear_config([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
+      assert capture_log(fn ->
+               assert Pleroma.ApplicationRequirements.verify!() == :ok
+             end) =~ "Users will NOT be able to confirm their accounts"
     end
 
     test "doesn't do anything if account confirmation is disabled" do
     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)
+      clear_config([:instance, :account_activation_required], false)
+      clear_config([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
       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)
+      clear_config([:instance, :account_activation_required], true)
+      clear_config([Pleroma.Emails.Mailer, :enabled], true)
       assert Pleroma.ApplicationRequirements.verify!() == :ok
     end
   end
       assert Pleroma.ApplicationRequirements.verify!() == :ok
     end
   end
@@ -73,7 +90,7 @@ defmodule Pleroma.ApplicationRequirementsTest do
     setup do: clear_config([:database, :rum_enabled])
 
     test "raises if rum is enabled and detects unapplied rum migrations" do
     setup do: clear_config([:database, :rum_enabled])
 
     test "raises if rum is enabled and detects unapplied rum migrations" do
-      Config.put([:database, :rum_enabled], true)
+      clear_config([:database, :rum_enabled], true)
 
       with_mocks([{Repo, [:passthrough], [exists?: fn _, _ -> false end]}]) do
         assert_raise ApplicationRequirements.VerifyError,
 
       with_mocks([{Repo, [:passthrough], [exists?: fn _, _ -> false end]}]) do
         assert_raise ApplicationRequirements.VerifyError,
@@ -85,7 +102,7 @@ defmodule Pleroma.ApplicationRequirementsTest do
     end
 
     test "raises if rum is disabled and detects rum migrations" do
     end
 
     test "raises if rum is disabled and detects rum migrations" do
-      Config.put([:database, :rum_enabled], false)
+      clear_config([:database, :rum_enabled], false)
 
       with_mocks([{Repo, [:passthrough], [exists?: fn _, _ -> true end]}]) do
         assert_raise ApplicationRequirements.VerifyError,
 
       with_mocks([{Repo, [:passthrough], [exists?: fn _, _ -> true end]}]) do
         assert_raise ApplicationRequirements.VerifyError,
@@ -97,7 +114,7 @@ defmodule Pleroma.ApplicationRequirementsTest do
     end
 
     test "doesn't do anything if rum enabled and applied migrations" do
     end
 
     test "doesn't do anything if rum enabled and applied migrations" do
-      Config.put([:database, :rum_enabled], true)
+      clear_config([:database, :rum_enabled], true)
 
       with_mocks([{Repo, [:passthrough], [exists?: fn _, _ -> true end]}]) do
         assert ApplicationRequirements.verify!() == :ok
 
       with_mocks([{Repo, [:passthrough], [exists?: fn _, _ -> true end]}]) do
         assert ApplicationRequirements.verify!() == :ok
@@ -105,7 +122,7 @@ defmodule Pleroma.ApplicationRequirementsTest do
     end
 
     test "doesn't do anything if rum disabled" do
     end
 
     test "doesn't do anything if rum disabled" do
-      Config.put([:database, :rum_enabled], false)
+      clear_config([:database, :rum_enabled], false)
 
       with_mocks([{Repo, [:passthrough], [exists?: fn _, _ -> false end]}]) do
         assert ApplicationRequirements.verify!() == :ok
 
       with_mocks([{Repo, [:passthrough], [exists?: fn _, _ -> false end]}]) do
         assert ApplicationRequirements.verify!() == :ok
@@ -141,7 +158,7 @@ defmodule Pleroma.ApplicationRequirementsTest do
     end
 
     test "doesn't do anything if disabled" do
     end
 
     test "doesn't do anything if disabled" do
-      Config.put([:i_am_aware_this_may_cause_data_loss, :disable_migration_check], true)
+      clear_config([:i_am_aware_this_may_cause_data_loss, :disable_migration_check], true)
 
       assert :ok == ApplicationRequirements.verify!()
     end
 
       assert :ok == ApplicationRequirements.verify!()
     end