diff options
Diffstat (limited to 'test/repo_test.exs')
| -rw-r--r-- | test/repo_test.exs | 43 | 
1 files changed, 43 insertions, 0 deletions
| diff --git a/test/repo_test.exs b/test/repo_test.exs index 85b64d4d1..5526b0327 100644 --- a/test/repo_test.exs +++ b/test/repo_test.exs @@ -4,7 +4,10 @@  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,44 @@ 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 + +    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 +      disable_migration_check = +        Pleroma.Config.get([:i_am_aware_this_may_cause_data_loss, :disable_migration_check]) + +      Pleroma.Config.put([:i_am_aware_this_may_cause_data_loss, :disable_migration_check], true) + +      on_exit(fn -> +        Pleroma.Config.put( +          [:i_am_aware_this_may_cause_data_loss, :disable_migration_check], +          disable_migration_check +        ) +      end) + +      assert :ok == Repo.check_migrations_applied!() +    end +  end  end | 
