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