51 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
| # Pleroma: A lightweight social networking server
 | |
| # Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
 | |
| # SPDX-License-Identifier: AGPL-3.0-only
 | |
| 
 | |
| defmodule Pleroma.Config.TransferTaskTest do
 | |
|   use Pleroma.DataCase
 | |
| 
 | |
|   clear_config([:instance, :dynamic_configuration]) do
 | |
|     Pleroma.Config.put([:instance, :dynamic_configuration], true)
 | |
|   end
 | |
| 
 | |
|   test "transfer config values from db to env" do
 | |
|     refute Application.get_env(:pleroma, :test_key)
 | |
|     refute Application.get_env(:idna, :test_key)
 | |
| 
 | |
|     Pleroma.Web.AdminAPI.Config.create(%{
 | |
|       group: "pleroma",
 | |
|       key: "test_key",
 | |
|       value: [live: 2, com: 3]
 | |
|     })
 | |
| 
 | |
|     Pleroma.Web.AdminAPI.Config.create(%{
 | |
|       group: "idna",
 | |
|       key: "test_key",
 | |
|       value: [live: 15, com: 35]
 | |
|     })
 | |
| 
 | |
|     Pleroma.Config.TransferTask.start_link([])
 | |
| 
 | |
|     assert Application.get_env(:pleroma, :test_key) == [live: 2, com: 3]
 | |
|     assert Application.get_env(:idna, :test_key) == [live: 15, com: 35]
 | |
| 
 | |
|     on_exit(fn ->
 | |
|       Application.delete_env(:pleroma, :test_key)
 | |
|       Application.delete_env(:idna, :test_key)
 | |
|     end)
 | |
|   end
 | |
| 
 | |
|   test "non existing atom" do
 | |
|     Pleroma.Web.AdminAPI.Config.create(%{
 | |
|       group: "pleroma",
 | |
|       key: "undefined_atom_key",
 | |
|       value: [live: 2, com: 3]
 | |
|     })
 | |
| 
 | |
|     assert ExUnit.CaptureLog.capture_log(fn ->
 | |
|              Pleroma.Config.TransferTask.start_link([])
 | |
|            end) =~
 | |
|              "updating env causes error, key: \"undefined_atom_key\", error: %ArgumentError{message: \"argument error\"}"
 | |
|   end
 | |
| end
 | 
