acd45600cf4071dce2f40590bdf8d9f8787e11db
[akkoma] / test / pleroma / repo / migrations / rename_instance_chat_test.exs
1 defmodule Pleroma.Repo.Migrations.RenameInstanceChatTest do
2 use Pleroma.DataCase
3 import Pleroma.Factory
4 import Pleroma.Tests.Helpers
5 alias Pleroma.ConfigDB
6
7 setup do: clear_config([:instance])
8 setup do: clear_config([:chat])
9 setup_all do: require_migration("20200806175913_rename_instance_chat")
10
11 describe "up/0" do
12 test "migrates chat settings to shout", %{migration: migration} do
13 insert(:config, group: :pleroma, key: :instance, value: [chat_limit: 6000])
14 insert(:config, group: :pleroma, key: :chat, value: [enabled: true])
15
16 assert migration.up() == :ok
17
18 assert ConfigDB.get_by_params(%{group: :pleroma, key: :chat}) == nil
19 assert ConfigDB.get_by_params(%{group: :pleroma, key: :instance}) == nil
20
21 assert ConfigDB.get_by_params(%{group: :pleroma, key: :shout}).value == [
22 limit: 6000,
23 enabled: true
24 ]
25 end
26
27 test "does nothing when chat settings are not set", %{migration: migration} do
28 assert migration.up() == :noop
29 assert ConfigDB.get_by_params(%{group: :pleroma, key: :chat}) == nil
30 assert ConfigDB.get_by_params(%{group: :pleroma, key: :shout}) == nil
31 end
32 end
33
34 describe "down/0" do
35 test "migrates shout settings back to instance and chat", %{migration: migration} do
36 insert(:config, group: :pleroma, key: :shout, value: [limit: 42, enabled: true])
37
38 assert migration.down() == :ok
39
40 assert ConfigDB.get_by_params(%{group: :pleroma, key: :chat}).value == [enabled: true]
41 assert ConfigDB.get_by_params(%{group: :pleroma, key: :instance}).value == [chat_limit: 42]
42 assert ConfigDB.get_by_params(%{group: :pleroma, key: :shout}) == nil
43 end
44
45 test "does nothing when shout settings are not set", %{migration: migration} do
46 assert migration.down() == :noop
47 assert ConfigDB.get_by_params(%{group: :pleroma, key: :chat}) == nil
48 assert ConfigDB.get_by_params(%{group: :pleroma, key: :instance}) == nil
49 assert ConfigDB.get_by_params(%{group: :pleroma, key: :shout}) == nil
50 end
51 end
52 end