aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/pleroma/application_requirements.ex8
-rw-r--r--test/application_requirements_test.exs48
2 files changed, 47 insertions, 9 deletions
diff --git a/lib/pleroma/application_requirements.ex b/lib/pleroma/application_requirements.ex
index 3bba70b7b..88575a498 100644
--- a/lib/pleroma/application_requirements.ex
+++ b/lib/pleroma/application_requirements.ex
@@ -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 ->
diff --git a/test/application_requirements_test.exs b/test/application_requirements_test.exs
index 0981fcdeb..b8d073e11 100644
--- a/test/application_requirements_test.exs
+++ b/test/application_requirements_test.exs
@@ -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