Handle non-list keys in Config.fetch/1
authorRoman Chvanikov <chvanikoff@pm.me>
Wed, 5 Aug 2020 15:23:12 +0000 (18:23 +0300)
committerRoman Chvanikov <chvanikoff@pm.me>
Wed, 5 Aug 2020 15:23:12 +0000 (18:23 +0300)
lib/pleroma/config.ex
test/config_test.exs

index 98099ca58a906955dd06191e564473a433948fad..a8329cc1efbda910a5a0de6dda0068996d5b7d27 100644 (file)
@@ -32,6 +32,8 @@ defmodule Pleroma.Config do
     end
   end
 
+  def fetch(key) when is_atom(key), do: fetch([key])
+
   def fetch([root_key | keys]) do
     Enum.reduce_while(keys, Application.fetch_env(:pleroma, root_key), fn
       key, {:ok, config} when is_map(config) or is_list(config) ->
index e2c18304e03575db0725bb196b239dce2a6b8bfd..1556e4237420cf35c253f7a19f43b7b57495dca6 100644 (file)
@@ -127,9 +127,11 @@ defmodule Pleroma.ConfigTest do
     Pleroma.Config.put([:ipsum], dolor: :sit)
 
     assert Pleroma.Config.fetch([:lorem]) == {:ok, :ipsum}
+    assert Pleroma.Config.fetch(:lorem) == {:ok, :ipsum}
     assert Pleroma.Config.fetch([:ipsum, :dolor]) == {:ok, :sit}
     assert Pleroma.Config.fetch([:lorem, :ipsum]) == :error
     assert Pleroma.Config.fetch([:loremipsum]) == :error
+    assert Pleroma.Config.fetch(:loremipsum) == :error
 
     Pleroma.Config.delete([:lorem])
     Pleroma.Config.delete([:ipsum])