summaryrefslogtreecommitdiff
path: root/test/pleroma/config/release_runtime_provider_test.exs
blob: 6578d32686fc9336c33e3edfb8b836c06319b171 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
defmodule Pleroma.Config.ReleaseRuntimeProviderTest do
  use ExUnit.Case, async: true

  alias Pleroma.Config.ReleaseRuntimeProvider

  describe "load/2" do
    test "loads release defaults config and warns about non-existent runtime config" do
      ExUnit.CaptureIO.capture_io(fn ->
        merged = ReleaseRuntimeProvider.load([], [])
        assert merged == Pleroma.Config.Holder.release_defaults()
      end) =~
        "!!! Config path is not declared! Please ensure it exists and that PLEROMA_CONFIG_PATH is unset or points to an existing file"
    end

    test "merged runtime config" do
      merged =
        ReleaseRuntimeProvider.load([], config_path: "test/fixtures/config/temp.secret.exs")

      assert merged[:pleroma][:first_setting] == [key: "value", key2: [Pleroma.Repo]]
      assert merged[:pleroma][:second_setting] == [key: "value2", key2: ["Activity"]]
    end

    test "merged exported config" do
      ExUnit.CaptureIO.capture_io(fn ->
        merged =
          ReleaseRuntimeProvider.load([],
            exported_config_path: "test/fixtures/config/temp.exported_from_db.secret.exs"
          )

        assert merged[:pleroma][:exported_config_merged]
      end) =~
        "!!! Config path is not declared! Please ensure it exists and that PLEROMA_CONFIG_PATH is unset or points to an existing file"
    end

    test "runtime config is merged with exported config" do
      merged =
        ReleaseRuntimeProvider.load([],
          config_path: "test/fixtures/config/temp.secret.exs",
          exported_config_path: "test/fixtures/config/temp.exported_from_db.secret.exs"
        )

      assert merged[:pleroma][:first_setting] == [key2: [Pleroma.Repo], key: "new value"]
    end
  end
end