ApplicationRequirements: Add test, more text for pool size.
authorlain <lain@soykaf.club>
Tue, 8 Dec 2020 16:30:10 +0000 (17:30 +0100)
committerlain <lain@soykaf.club>
Tue, 8 Dec 2020 16:30:10 +0000 (17:30 +0100)
lib/pleroma/application_requirements.ex
test/pleroma/application_requirements_test.exs

index 2c1864ef115d468dee9cf5652d99f27fd558e7fe..e61576644fd61d0cbc119fa1e1b3f10fe65cef0d 100644 (file)
@@ -194,9 +194,15 @@ defmodule Pleroma.ApplicationRequirements do
          not Pleroma.Config.get([:dangerzone, :override_repo_pool_size], false) do
       Logger.error("""
       !!!CONFIG WARNING!!!
-      The database pool size has been altered from the recommended value of 10.\n
-      Please revert or ensure your database is tuned appropriately and then set\n
+
+      The database pool size has been altered from the recommended value of 10.
+
+      Please revert or ensure your database is tuned appropriately and then set
       `config :pleroma, :dangerzone, override_repo_pool_size: true`.
+
+      If you are experiencing database timeouts, please check the "Optimizing
+      your PostgreSQL performance" section in the documentation. If you still
+      encounter issues after that, please open an issue on the tracker.
       """)
 
       {:error, "Repo.pool_size different than recommended value."}
index c505ae229c552aa9a6e8f83bfc4c82c8ae6ff769..b432dbc37e073ea211ad85509b8093866deb0887 100644 (file)
@@ -12,6 +12,25 @@ defmodule Pleroma.ApplicationRequirementsTest do
   alias Pleroma.Config
   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)
+
+      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])