X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=test%2Frepo_test.exs;h=daffc65427487492b2d5d4113f0889ece8648d9c;hb=59bdef0c337f1892282e245c5a236680af8e0318;hp=85085a1fa0c2ab7473a9b830dfcdcef9fb350c30;hpb=ce47017c8927b8b2d31668d5e32e387d80739502;p=akkoma diff --git a/test/repo_test.exs b/test/repo_test.exs index 85085a1fa..daffc6542 100644 --- a/test/repo_test.exs +++ b/test/repo_test.exs @@ -1,6 +1,13 @@ +# Pleroma: A lightweight social networking server +# 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 @@ -42,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 + + setup do: 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