1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
5 defmodule Pleroma.Repo.Migrations.RenameInstanceChatTest do
8 import Pleroma.Tests.Helpers
11 setup do: clear_config([:instance])
12 setup do: clear_config([:chat])
13 setup_all do: require_migration("20200806175913_rename_instance_chat")
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])
20 assert migration.up() == :ok
22 assert ConfigDB.get_by_params(%{group: :pleroma, key: :chat}) == nil
23 assert ConfigDB.get_by_params(%{group: :pleroma, key: :instance}) == nil
25 assert ConfigDB.get_by_params(%{group: :pleroma, key: :shout}).value == [
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
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])
42 assert migration.down() == :ok
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
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