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