added tests
authorMaksim Pechnikov <parallel588@gmail.com>
Tue, 23 Jun 2020 03:56:17 +0000 (06:56 +0300)
committerMaksim Pechnikov <parallel588@gmail.com>
Tue, 23 Jun 2020 03:59:00 +0000 (06:59 +0300)
lib/pleroma/application_requirements.ex
test/application_requirements_test.exs

index 3bba70b7b42d31783f78083cf9ff1f7ab33705c1..88575a498f6db653c5b40a631961089ad1ba7660 100644 (file)
@@ -24,7 +24,9 @@ defmodule Pleroma.ApplicationRequirements do
   defp handle_result(:ok), do: :ok
   defp handle_result({:error, message}), do: raise(VerifyError, message: message)
 
-  defp check_migrations_applied!(:ok) do
+  # Checks for pending migrations.
+  #
+  def check_migrations_applied!(:ok) do
     unless Pleroma.Config.get(
              [:i_am_aware_this_may_cause_data_loss, :disable_migration_check],
              false
@@ -58,8 +60,10 @@ defmodule Pleroma.ApplicationRequirements do
     end
   end
 
-  defp check_migrations_applied!(result), do: result
+  def check_migrations_applied!(result), do: result
 
+  # Checks for settings of RUM indexes.
+  #
   defp check_rum!(:ok) do
     {_, res, _} =
       Ecto.Migrator.with_repo(Pleroma.Repo, fn repo ->
index 0981fcdebd4de172b8823f504bdc984ce2352711..b8d073e11c325df240e17b8205c01b1627772ccb 100644 (file)
@@ -2,25 +2,22 @@
 # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
 # SPDX-License-Identifier: AGPL-3.0-only
 
-defmodule Pleroma.RepoTest do
+defmodule Pleroma.ApplicationRequirementsTest do
   use Pleroma.DataCase
   import ExUnit.CaptureLog
   import Mock
 
   describe "check_rum!" do
     setup_with_mocks([
-      {Ecto.Migrator, [],
-       [
-         with_repo: fn repo, fun -> passthrough([repo, fun]) end,
-         migrations: fn Pleroma.Repo -> [] end
-       ]}
+      {Pleroma.ApplicationRequirements, [:passthrough],
+       [check_migrations_applied!: fn _ -> :ok end]}
     ]) do
       :ok
     end
 
     setup do: clear_config([:database, :rum_enabled])
 
-    test "raises if rum is enabled and  detects unapplied rum migrations" do
+    test "raises if rum is enabled and detects unapplied rum migrations" do
       Pleroma.Config.put([:database, :rum_enabled], true)
 
       assert_raise Pleroma.ApplicationRequirements.VerifyError,
@@ -29,6 +26,43 @@ defmodule Pleroma.RepoTest do
                      capture_log(&Pleroma.ApplicationRequirements.verify!/0)
                    end
     end
+
+    test "raises if rum is disabled and detects rum migrations" do
+      Pleroma.Config.put([:database, :rum_enabled], false)
+
+      with_mocks([
+        {
+          Pleroma.Repo,
+          [:passthrough],
+          [exists?: fn _, _ -> true end]
+        }
+      ]) do
+        assert_raise Pleroma.ApplicationRequirements.VerifyError,
+                     "RUM Migrations detected",
+                     fn ->
+                       capture_log(&Pleroma.ApplicationRequirements.verify!/0)
+                     end
+      end
+    end
+
+    test "doesn't do anything if rum enabled and applied migrations" do
+      Pleroma.Config.put([:database, :rum_enabled], true)
+
+      with_mocks([
+        {
+          Pleroma.Repo,
+          [:passthrough],
+          [exists?: fn _, _ -> true end]
+        }
+      ]) do
+        assert Pleroma.ApplicationRequirements.verify!() == :ok
+      end
+    end
+
+    test "doesn't do anything if rum disabled" do
+      Pleroma.Config.put([:database, :rum_enabled], false)
+      assert Pleroma.ApplicationRequirements.verify!() == :ok
+    end
   end
 
   describe "check_migrations_applied!" do