52 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			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
 |