Merge branch 'issue/2069' into 'develop'
[akkoma] / test / pleroma / repo / migrations / move_welcome_settings_test.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Repo.Migrations.MoveWelcomeSettingsTest do
6 use Pleroma.DataCase
7 import Pleroma.Factory
8 import Pleroma.Tests.Helpers
9 alias Pleroma.ConfigDB
10
11 setup_all do: require_migration("20200724133313_move_welcome_settings")
12
13 describe "up/0" do
14 test "converts welcome settings", %{migration: migration} do
15 insert(:config,
16 group: :pleroma,
17 key: :instance,
18 value: [
19 welcome_message: "Test message",
20 welcome_user_nickname: "jimm",
21 name: "Pleroma"
22 ]
23 )
24
25 migration.up()
26 instance_config = ConfigDB.get_by_params(%{group: :pleroma, key: :instance})
27 welcome_config = ConfigDB.get_by_params(%{group: :pleroma, key: :welcome})
28
29 assert instance_config.value == [name: "Pleroma"]
30
31 assert welcome_config.value == [
32 direct_message: %{
33 enabled: true,
34 message: "Test message",
35 sender_nickname: "jimm"
36 },
37 email: %{
38 enabled: false,
39 html: "Welcome to <%= instance_name %>",
40 sender: nil,
41 subject: "Welcome to <%= instance_name %>",
42 text: "Welcome to <%= instance_name %>"
43 }
44 ]
45 end
46
47 test "does nothing when message empty", %{migration: migration} do
48 insert(:config,
49 group: :pleroma,
50 key: :instance,
51 value: [
52 welcome_message: "",
53 welcome_user_nickname: "jimm",
54 name: "Pleroma"
55 ]
56 )
57
58 migration.up()
59 instance_config = ConfigDB.get_by_params(%{group: :pleroma, key: :instance})
60 refute ConfigDB.get_by_params(%{group: :pleroma, key: :welcome})
61 assert instance_config.value == [name: "Pleroma"]
62 end
63
64 test "does nothing when welcome_message not set", %{migration: migration} do
65 insert(:config,
66 group: :pleroma,
67 key: :instance,
68 value: [welcome_user_nickname: "jimm", name: "Pleroma"]
69 )
70
71 migration.up()
72 instance_config = ConfigDB.get_by_params(%{group: :pleroma, key: :instance})
73 refute ConfigDB.get_by_params(%{group: :pleroma, key: :welcome})
74 assert instance_config.value == [name: "Pleroma"]
75 end
76 end
77
78 describe "down/0" do
79 test "revert new settings to old when instance setting not exists", %{migration: migration} do
80 insert(:config,
81 group: :pleroma,
82 key: :welcome,
83 value: [
84 direct_message: %{
85 enabled: true,
86 message: "Test message",
87 sender_nickname: "jimm"
88 },
89 email: %{
90 enabled: false,
91 html: "Welcome to <%= instance_name %>",
92 sender: nil,
93 subject: "Welcome to <%= instance_name %>",
94 text: "Welcome to <%= instance_name %>"
95 }
96 ]
97 )
98
99 migration.down()
100
101 refute ConfigDB.get_by_params(%{group: :pleroma, key: :welcome})
102 instance_config = ConfigDB.get_by_params(%{group: :pleroma, key: :instance})
103
104 assert instance_config.value == [
105 welcome_user_nickname: "jimm",
106 welcome_message: "Test message"
107 ]
108 end
109
110 test "revert new settings to old when instance setting exists", %{migration: migration} do
111 insert(:config, group: :pleroma, key: :instance, value: [name: "Pleroma App"])
112
113 insert(:config,
114 group: :pleroma,
115 key: :welcome,
116 value: [
117 direct_message: %{
118 enabled: true,
119 message: "Test message",
120 sender_nickname: "jimm"
121 },
122 email: %{
123 enabled: false,
124 html: "Welcome to <%= instance_name %>",
125 sender: nil,
126 subject: "Welcome to <%= instance_name %>",
127 text: "Welcome to <%= instance_name %>"
128 }
129 ]
130 )
131
132 migration.down()
133
134 refute ConfigDB.get_by_params(%{group: :pleroma, key: :welcome})
135 instance_config = ConfigDB.get_by_params(%{group: :pleroma, key: :instance})
136
137 assert instance_config.value == [
138 name: "Pleroma App",
139 welcome_user_nickname: "jimm",
140 welcome_message: "Test message"
141 ]
142 end
143 end
144 end