saving to DB only added by user settings

This commit is contained in:
Alexander Strizhakov 2020-01-17 11:45:44 +03:00
commit 60ba2339a2
No known key found for this signature in database
GPG key ID: 022896A53AEF1381
11 changed files with 280 additions and 44 deletions

View file

@ -15,8 +15,8 @@ defmodule Pleroma.ConfigDBTest do
end
test "create/1" do
{:ok, config} = ConfigDB.create(%{group: "pleroma", key: "some_key", value: "some_value"})
assert config == ConfigDB.get_by_params(%{group: "pleroma", key: "some_key"})
{:ok, config} = ConfigDB.create(%{group: ":pleroma", key: ":some_key", value: "some_value"})
assert config == ConfigDB.get_by_params(%{group: ":pleroma", key: ":some_key"})
end
test "update/1" do
@ -26,6 +26,27 @@ defmodule Pleroma.ConfigDBTest do
assert loaded == updated
end
test "get_all_as_keyword/0" do
insert(:config)
insert(:config, group: ":quack", key: ":level", value: ConfigDB.to_binary(:info))
insert(:config, group: ":quack", key: ":meta", value: ConfigDB.to_binary([:none]))
insert(:config,
group: ":quack",
key: ":webhook_url",
value: ConfigDB.to_binary("https://hooks.slack.com/services/KEY/some_val")
)
assert [
pleroma: [{_, %{another: _, another_key: _}}],
quack: [
level: :info,
meta: [:none],
webhook_url: "https://hooks.slack.com/services/KEY/some_val"
]
] = ConfigDB.get_all_as_keyword()
end
describe "update_or_create/1" do
test "common" do
config = insert(:config)

View file

@ -47,6 +47,35 @@ defmodule Pleroma.Config.TransferTaskTest do
end)
end
test "transfer config values for 1 group and some keys" do
level = Application.get_env(:quack, :level)
meta = Application.get_env(:quack, :meta)
ConfigDB.create(%{
group: ":quack",
key: ":level",
value: :info
})
ConfigDB.create(%{
group: ":quack",
key: ":meta",
value: [:none]
})
Pleroma.Config.TransferTask.start_link([])
assert Application.get_env(:quack, :level) == :info
assert Application.get_env(:quack, :meta) == [:none]
default = Pleroma.Config.Holder.config(:quack, :webhook_url)
assert Application.get_env(:quack, :webhook_url) == default
on_exit(fn ->
Application.put_env(:quack, :level, level)
Application.put_env(:quack, :meta, meta)
end)
end
test "non existing atom" do
ConfigDB.create(%{
group: ":pleroma",