X-Git-Url: https://git.squeep.com/?a=blobdiff_plain;ds=sidebyside;f=test%2Frepo_test.exs;h=75e85f9742e01b008fa52de35efbd907e9a4c557;hb=f10b40828fd5f1e4fc7c4ffa9deb543d6a18eb17;hp=85b64d4d152d6e684df9aae5d4d98564e6afccd8;hpb=90986667cedb20b316ae4e160729d78d692d0c0e;p=akkoma
diff --git a/test/repo_test.exs b/test/repo_test.exs
index 85b64d4d1..75e85f974 100644
--- a/test/repo_test.exs
+++ b/test/repo_test.exs
@@ -1,10 +1,13 @@
# Pleroma: A lightweight social networking server
-# Copyright © 2017-2019 Pleroma Authors
+# Copyright © 2017-2020 Pleroma Authors
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.RepoTest do
use Pleroma.DataCase
+ import ExUnit.CaptureLog
import Pleroma.Factory
+ import Mock
+
alias Pleroma.User
describe "find_resource/1" do
@@ -46,4 +49,36 @@ defmodule Pleroma.RepoTest do
assert Repo.get_assoc(token, :user) == {:error, :not_found}
end
end
+
+ describe "check_migrations_applied!" do
+ setup_with_mocks([
+ {Ecto.Migrator, [],
+ [
+ with_repo: fn repo, fun -> passthrough([repo, fun]) end,
+ migrations: fn Pleroma.Repo ->
+ [
+ {:up, 20_191_128_153_944, "fix_missing_following_count"},
+ {:up, 20_191_203_043_610, "create_report_notes"},
+ {:down, 20_191_220_174_645, "add_scopes_to_pleroma_feo_auth_records"}
+ ]
+ end
+ ]}
+ ]) do
+ :ok
+ end
+
+ clear_config([:i_am_aware_this_may_cause_data_loss, :disable_migration_check])
+
+ test "raises if it detects unapplied migrations" do
+ assert_raise Pleroma.Repo.UnappliedMigrationsError, fn ->
+ capture_log(&Repo.check_migrations_applied!/0)
+ end
+ end
+
+ test "doesn't do anything if disabled" do
+ Pleroma.Config.put([:i_am_aware_this_may_cause_data_loss, :disable_migration_check], true)
+
+ assert :ok == Repo.check_migrations_applied!()
+ end
+ end
end