summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorRoman Chvanikov <chvanikoff@pm.me>2020-08-04 14:35:47 +0300
committerRoman Chvanikov <chvanikoff@pm.me>2020-08-04 14:35:47 +0300
commit56e9bf33932bacfdffd700b97e3117fc593cac11 (patch)
treee16ea207bb67fe8f54174f42fb3e0f4edd6e6fd7 /test
parente3953923aca1706ab508bfda1ab892304b29c09a (diff)
downloadpleroma-56e9bf33932bacfdffd700b97e3117fc593cac11.tar.gz
pleroma-56e9bf33932bacfdffd700b97e3117fc593cac11.zip
Unify Config.get behaviour for atom/list key param
Diffstat (limited to 'test')
-rw-r--r--test/config_test.exs28
-rw-r--r--test/support/helpers.ex14
2 files changed, 40 insertions, 2 deletions
diff --git a/test/config_test.exs b/test/config_test.exs
index a46ab4302..3f3da06d0 100644
--- a/test/config_test.exs
+++ b/test/config_test.exs
@@ -28,6 +28,34 @@ defmodule Pleroma.ConfigTest do
assert Pleroma.Config.get([:azerty, :uiop], true) == true
end
+ describe "nil values" do
+ setup do
+ Pleroma.Config.put(:lorem, nil)
+ Pleroma.Config.put(:ipsum, %{dolor: [sit: nil]})
+ Pleroma.Config.put(:dolor, sit: %{amet: nil})
+
+ on_exit(fn -> Enum.each(~w(lorem ipsum dolor)a, &Pleroma.Config.delete/1) end)
+ end
+
+ test "get/1 with an atom for nil value" do
+ assert Pleroma.Config.get(:lorem) == nil
+ end
+
+ test "get/2 with an atom for nil value" do
+ assert Pleroma.Config.get(:lorem, true) == nil
+ end
+
+ test "get/1 with a list of keys for nil value" do
+ assert Pleroma.Config.get([:ipsum, :dolor, :sit]) == nil
+ assert Pleroma.Config.get([:dolor, :sit, :amet]) == nil
+ end
+
+ test "get/2 with a list of keys for nil value" do
+ assert Pleroma.Config.get([:ipsum, :dolor, :sit], true) == nil
+ assert Pleroma.Config.get([:dolor, :sit, :amet], true) == nil
+ end
+ end
+
test "get/1 when value is false" do
Pleroma.Config.put([:instance, :false_test], false)
Pleroma.Config.put([:instance, :nested], [])
diff --git a/test/support/helpers.ex b/test/support/helpers.ex
index 5cbf2e291..7d729541d 100644
--- a/test/support/helpers.ex
+++ b/test/support/helpers.ex
@@ -17,9 +17,19 @@ defmodule Pleroma.Tests.Helpers do
defmacro clear_config(config_path, do: yield) do
quote do
- initial_setting = Config.get(unquote(config_path))
+ initial_setting = Config.get(unquote(config_path), :__clear_config_absent__)
unquote(yield)
- on_exit(fn -> Config.put(unquote(config_path), initial_setting) end)
+
+ on_exit(fn ->
+ case initial_setting do
+ :__clear_config_absent__ ->
+ Config.delete(unquote(config_path))
+
+ _ ->
+ Config.put(unquote(config_path), initial_setting)
+ end
+ end)
+
:ok
end
end