1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
5 defmodule Pleroma.Config.ReleaseRuntimeProviderTest do
6 use ExUnit.Case, async: true
8 alias Pleroma.Config.ReleaseRuntimeProvider
11 test "loads release defaults config and warns about non-existent runtime config" do
12 ExUnit.CaptureIO.capture_io(fn ->
13 merged = ReleaseRuntimeProvider.load([], [])
14 assert merged == Pleroma.Config.Holder.release_defaults()
16 "!!! Config path is not declared! Please ensure it exists and that PLEROMA_CONFIG_PATH is unset or points to an existing file"
19 test "merged runtime config" do
20 assert :ok == File.chmod!("test/fixtures/config/temp.secret.exs", 0o640)
23 ReleaseRuntimeProvider.load([], config_path: "test/fixtures/config/temp.secret.exs")
25 assert merged[:pleroma][:first_setting] == [key: "value", key2: [Pleroma.Repo]]
26 assert merged[:pleroma][:second_setting] == [key: "value2", key2: ["Activity"]]
29 test "merged exported config" do
30 assert :ok == File.chmod!("test/fixtures/config/temp.exported_from_db.secret.exs", 0o640)
32 ExUnit.CaptureIO.capture_io(fn ->
34 ReleaseRuntimeProvider.load([],
35 exported_config_path: "test/fixtures/config/temp.exported_from_db.secret.exs"
38 assert merged[:pleroma][:exported_config_merged]
40 "!!! Config path is not declared! Please ensure it exists and that PLEROMA_CONFIG_PATH is unset or points to an existing file"
43 test "runtime config is merged with exported config" do
44 assert :ok == File.chmod!("test/fixtures/config/temp.secret.exs", 0o640)
45 assert :ok == File.chmod!("test/fixtures/config/temp.exported_from_db.secret.exs", 0o640)
48 ReleaseRuntimeProvider.load([],
49 config_path: "test/fixtures/config/temp.secret.exs",
50 exported_config_path: "test/fixtures/config/temp.exported_from_db.secret.exs"
53 assert merged[:pleroma][:first_setting] == [key2: [Pleroma.Repo], key: "new value"]