e8140f58eb1b6130e1e7744c94b47a452582da61
[akkoma] / test / config / deprecation_warnings_test.exs
1 defmodule Pleroma.Config.DeprecationWarningsTest do
2 use ExUnit.Case, async: true
3 use Pleroma.Tests.Helpers
4
5 import ExUnit.CaptureLog
6
7 alias Pleroma.Config
8 alias Pleroma.Config.DeprecationWarnings
9
10 test "check_old_mrf_config/0" do
11 clear_config([:instance, :rewrite_policy], Pleroma.Web.ActivityPub.MRF.NoOpPolicy)
12 clear_config([:instance, :mrf_transparency], true)
13 clear_config([:instance, :mrf_transparency_exclusions], [])
14
15 assert capture_log(fn -> DeprecationWarnings.check_old_mrf_config() end) =~
16 """
17 !!!DEPRECATION WARNING!!!
18 Your config is using old namespaces for MRF configuration. They should work for now, but you are advised to change to new namespaces to prevent possible issues later:
19
20 * `config :pleroma, :instance, rewrite_policy` is now `config :pleroma, :mrf, policies`
21 * `config :pleroma, :instance, mrf_transparency` is now `config :pleroma, :mrf, transparency`
22 * `config :pleroma, :instance, mrf_transparency_exclusions` is now `config :pleroma, :mrf, transparency_exclusions`
23 """
24 end
25
26 test "move_namespace_and_warn/2" do
27 old_group1 = [:group, :key]
28 old_group2 = [:group, :key2]
29 old_group3 = [:group, :key3]
30
31 new_group1 = [:another_group, :key4]
32 new_group2 = [:another_group, :key5]
33 new_group3 = [:another_group, :key6]
34
35 clear_config(old_group1, 1)
36 clear_config(old_group2, 2)
37 clear_config(old_group3, 3)
38
39 clear_config(new_group1)
40 clear_config(new_group2)
41 clear_config(new_group3)
42
43 config_map = [
44 {old_group1, new_group1, "\n error :key"},
45 {old_group2, new_group2, "\n error :key2"},
46 {old_group3, new_group3, "\n error :key3"}
47 ]
48
49 assert capture_log(fn ->
50 DeprecationWarnings.move_namespace_and_warn(
51 config_map,
52 "Warning preface"
53 )
54 end) =~ "Warning preface\n error :key\n error :key2\n error :key3"
55
56 assert Config.get(new_group1) == 1
57 assert Config.get(new_group2) == 2
58 assert Config.get(new_group3) == 3
59 end
60
61 test "check_media_proxy_whitelist_config/0" do
62 clear_config([:media_proxy, :whitelist], ["https://example.com", "example2.com"])
63
64 assert capture_log(fn ->
65 DeprecationWarnings.check_media_proxy_whitelist_config()
66 end) =~ "Your config is using old format (only domain) for MediaProxy whitelist option"
67 end
68
69 test "check_welcome_message_config/0" do
70 clear_config([:instance, :welcome_user_nickname], "LainChan")
71
72 assert capture_log(fn ->
73 DeprecationWarnings.check_welcome_message_config()
74 end) =~ "Your config is using the old namespace for Welcome messages configuration."
75 end
76
77 describe "check_gun_pool_options/0" do
78 test "await_up_timeout" do
79 config = Config.get(:connections_pool)
80 clear_config(:connections_pool, Keyword.put(config, :await_up_timeout, 5_000))
81
82 assert capture_log(fn ->
83 DeprecationWarnings.check_gun_pool_options()
84 end) =~
85 "Your config is using old setting `config :pleroma, :connections_pool, await_up_timeout`."
86 end
87
88 test "pool timeout" do
89 old_config = [
90 federation: [
91 size: 50,
92 max_waiting: 10,
93 timeout: 10_000
94 ],
95 media: [
96 size: 50,
97 max_waiting: 10,
98 timeout: 10_000
99 ],
100 upload: [
101 size: 25,
102 max_waiting: 5,
103 timeout: 15_000
104 ],
105 default: [
106 size: 10,
107 max_waiting: 2,
108 timeout: 5_000
109 ]
110 ]
111
112 clear_config(:pools, old_config)
113
114 assert capture_log(fn ->
115 DeprecationWarnings.check_gun_pool_options()
116 end) =~
117 "Your config is using old setting name `timeout` instead of `recv_timeout` in pool settings"
118 end
119 end
120 end