akkoma/test/pleroma/config/release_runtime_provider_test.exs
Haelwenn (lanodan) Monnier 749e9f2229
release_runtime_provider_test: chmod config for hardened permissions
Git doesn't manages file permissions precisely enough for us.

Original: 65ef8f19c5
2023-08-04 14:14:04 -04:00

52 lines
2 KiB
Elixir

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
assert :ok == File.chmod!("test/fixtures/config/temp.secret.exs", 0o640)
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
assert :ok == File.chmod!("test/fixtures/config/temp.exported_from_db.secret.exs", 0o640)
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
assert :ok == File.chmod!("test/fixtures/config/temp.secret.exs", 0o640)
assert :ok == File.chmod!("test/fixtures/config/temp.exported_from_db.secret.exs", 0o640)
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