diff options
| author | Alexander Strizhakov <alex.strizhakov@gmail.com> | 2019-06-14 15:45:05 +0000 | 
|---|---|---|
| committer | kaniini <nenolod@gmail.com> | 2019-06-14 15:45:05 +0000 | 
| commit | c2ca1f22a25d22d6d863406ed05b08c643e5824c (patch) | |
| tree | bf75fc306788d784d74fb6ca617f3ddd27b75fd2 /test/tasks | |
| parent | b7fc722a2e9e93341229cb122aac605421782295 (diff) | |
| download | pleroma-c2ca1f22a25d22d6d863406ed05b08c643e5824c.tar.gz pleroma-c2ca1f22a25d22d6d863406ed05b08c643e5824c.zip | |
it is changed in compile time
we can't change module attributes and endpoint settings in runtime
Diffstat (limited to 'test/tasks')
| -rw-r--r-- | test/tasks/config_test.exs | 54 | ||||
| -rw-r--r-- | test/tasks/instance.exs | 3 | 
2 files changed, 57 insertions, 0 deletions
| diff --git a/test/tasks/config_test.exs b/test/tasks/config_test.exs new file mode 100644 index 000000000..7d3b1860c --- /dev/null +++ b/test/tasks/config_test.exs @@ -0,0 +1,54 @@ +defmodule Mix.Tasks.Pleroma.ConfigTest do +  use Pleroma.DataCase +  alias Pleroma.Repo +  alias Pleroma.Web.AdminAPI.Config + +  setup_all do +    Mix.shell(Mix.Shell.Process) +    temp_file = "config/temp.migrated.secret.exs" + +    dynamic = Pleroma.Config.get([:instance, :dynamic_configuration]) + +    Pleroma.Config.put([:instance, :dynamic_configuration], true) + +    on_exit(fn -> +      Mix.shell(Mix.Shell.IO) +      Application.delete_env(:pleroma, :first_setting) +      Application.delete_env(:pleroma, :second_setting) +      Pleroma.Config.put([:instance, :dynamic_configuration], dynamic) +      :ok = File.rm(temp_file) +    end) + +    {:ok, temp_file: temp_file} +  end + +  test "settings are migrated to db" do +    assert Repo.all(Config) == [] + +    Application.put_env(:pleroma, :first_setting, key: "value", key2: [Pleroma.Repo]) +    Application.put_env(:pleroma, :second_setting, key: "value2", key2: [Pleroma.Activity]) + +    Mix.Tasks.Pleroma.Config.run(["migrate_to_db"]) + +    first_db = Config.get_by_key("first_setting") +    second_db = Config.get_by_key("second_setting") +    refute Config.get_by_key("Pleroma.Repo") + +    assert Config.from_binary(first_db.value) == [key: "value", key2: [Pleroma.Repo]] +    assert Config.from_binary(second_db.value) == [key: "value2", key2: [Pleroma.Activity]] +  end + +  test "settings are migrated to file and deleted from db", %{temp_file: temp_file} do +    Config.create(%{key: "setting_first", value: [key: "value", key2: [Pleroma.Activity]]}) +    Config.create(%{key: "setting_second", value: [key: "valu2", key2: [Pleroma.Repo]]}) + +    Mix.Tasks.Pleroma.Config.run(["migrate_from_db", "temp"]) + +    assert Repo.all(Config) == [] +    assert File.exists?(temp_file) +    {:ok, file} = File.read(temp_file) + +    assert file =~ "config :pleroma, setting_first:" +    assert file =~ "config :pleroma, setting_second:" +  end +end diff --git a/test/tasks/instance.exs b/test/tasks/instance.exs index 6917a2376..1875f52a3 100644 --- a/test/tasks/instance.exs +++ b/test/tasks/instance.exs @@ -36,6 +36,8 @@ defmodule Pleroma.InstanceTest do          "--dbpass",          "dbpass",          "--indexable", +        "y", +        "--db-configurable",          "y"        ])      end @@ -53,6 +55,7 @@ defmodule Pleroma.InstanceTest do      assert generated_config =~ "database: \"dbname\""      assert generated_config =~ "username: \"dbuser\""      assert generated_config =~ "password: \"dbpass\"" +    assert generated_config =~ "dynamic_configuration: true"      assert File.read!(tmp_path() <> "setup.psql") == generated_setup_psql()    end | 
