X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=test%2Fmix%2Ftasks%2Fpleroma%2Fconfig_test.exs;h=3ed1e94b8ad4f0f9b27b10bd7ab259ee04a28875;hb=7ac4da8dd4471455c7d243983d0e1ca6fa32a14e;hp=1ea9f5790f010e6bfe871f11dff091e264a94f0c;hpb=ca90843d13ab3342bc832ac27ac767d224678c4d;p=akkoma
diff --git a/test/mix/tasks/pleroma/config_test.exs b/test/mix/tasks/pleroma/config_test.exs
index 1ea9f5790..3ed1e94b8 100644
--- a/test/mix/tasks/pleroma/config_test.exs
+++ b/test/mix/tasks/pleroma/config_test.exs
@@ -1,5 +1,5 @@
# Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors
+# Copyright © 2017-2021 Pleroma Authors
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Mix.Tasks.Pleroma.ConfigTest do
@@ -200,6 +200,44 @@ defmodule Mix.Tasks.Pleroma.ConfigTest do
end
end
+ describe "migrate_from_db/1" do
+ setup do: clear_config(:configurable_from_database, true)
+
+ setup do
+ insert_config_record(:pleroma, :setting_first, key: "value", key2: ["Activity"])
+ insert_config_record(:pleroma, :setting_second, key: "value2", key2: [Repo])
+ insert_config_record(:quack, :level, :info)
+
+ path = "test/instance_static"
+ file_path = Path.join(path, "temp.exported_from_db.secret.exs")
+
+ on_exit(fn -> File.rm!(file_path) end)
+
+ [file_path: file_path]
+ end
+
+ test "with path parameter", %{file_path: file_path} do
+ MixTask.run(["migrate_from_db", "--env", "temp", "--path", Path.dirname(file_path)])
+
+ file = File.read!(file_path)
+ assert file =~ "config :pleroma, :setting_first,"
+ assert file =~ "config :pleroma, :setting_second,"
+ assert file =~ "config :quack, :level, :info"
+ end
+
+ test "release", %{file_path: file_path} do
+ clear_config(:release, true)
+ clear_config(:config_path, file_path)
+
+ MixTask.run(["migrate_from_db", "--env", "temp"])
+
+ file = File.read!(file_path)
+ assert file =~ "config :pleroma, :setting_first,"
+ assert file =~ "config :pleroma, :setting_second,"
+ assert file =~ "config :quack, :level, :info"
+ end
+ end
+
describe "operations on database config" do
setup do: clear_config(:configurable_from_database, true)
@@ -225,6 +263,12 @@ defmodule Mix.Tasks.Pleroma.ConfigTest do
"config :web_push_encryption, :vapid_details, [subject: \"mailto:administrator@example.com\", public_key: \"BOsPL-_KjNnjj_RMvLeR3dTOrcndi4TbMR0cu56gLGfGaT5m1gXxSfRHOcC4Dd78ycQL1gdhtx13qgKHmTM5xAI\", private_key: \"Ism6FNdS31nLCA94EfVbJbDdJXCxAZ8cZiB1JQPN_t4\"]\r\n\r\n"
]
}
+
+ # Ensure operations work when using atom syntax
+ MixTask.run(["dump", ":pleroma"])
+
+ assert_receive {:mix_shell, :info,
+ ["config :pleroma, :instance, [name: \"Pleroma Test\"]\r\n\r\n"]}
end
test "dumping a specific key in a group" do