Update clear_config macro

This commit is contained in:
Roman Chvanikov 2020-08-05 17:46:14 +03:00
parent 6f60ac9f41
commit 97b5701449
2 changed files with 5 additions and 8 deletions

View file

@ -127,10 +127,7 @@ test "doesn't do anything if rum disabled" do
:ok :ok
end end
setup do setup do: clear_config([:i_am_aware_this_may_cause_data_loss, :disable_migration_check])
Pleroma.Config.get(:i_am_aware_this_may_cause_data_loss, 42) |> IO.inspect()
clear_config([:i_am_aware_this_may_cause_data_loss, :disable_migration_check])
end
test "raises if it detects unapplied migrations" do test "raises if it detects unapplied migrations" do
assert_raise Pleroma.ApplicationRequirements.VerifyError, assert_raise Pleroma.ApplicationRequirements.VerifyError,

View file

@ -17,16 +17,16 @@ defmacro clear_config(config_path) do
defmacro clear_config(config_path, do: yield) do defmacro clear_config(config_path, do: yield) do
quote do quote do
initial_setting = Config.get(unquote(config_path), :__clear_config_absent__) initial_setting = Config.fetch(unquote(config_path))
unquote(yield) unquote(yield)
on_exit(fn -> on_exit(fn ->
case initial_setting do case initial_setting do
:__clear_config_absent__ -> :error ->
Config.delete(unquote(config_path)) Config.delete(unquote(config_path))
_ -> {:ok, value} ->
Config.put(unquote(config_path), initial_setting) Config.put(unquote(config_path), value)
end end
end) end)