defmodule Ejabberd.Config.EjabberdLoggerTest do use ExUnit.Case import ExUnit.CaptureIO alias Ejabberd.Config alias Ejabberd.Config.Store alias Ejabberd.Config.Validation alias Ejabberd.Config.EjabberdLogger setup_all do pid = Process.whereis(Ejabberd.Config.Store) unless pid != nil and Process.alive?(pid) do Store.start_link File.cd("test/elixir-config/shared") config_file_path = File.cwd! <> "/ejabberd_for_validation.exs" Config.init(config_file_path) end {:ok, %{}} end test "outputs correctly when attr is not supported" do error_msg = "[ WARN ] Annotation @attr_not_supported is not supported.\n" [_mod_configure, mod_time] = Store.get(:modules) fun = fn -> mod_time |> Validation.validate |> EjabberdLogger.log_errors end assert capture_io(fun) == error_msg end test "outputs correctly when dependency is not found" do error_msg = "[ WARN ] Module :mod_adhoc was not found, but is required as a dependency.\n" [mod_configure, _mod_time] = Store.get(:modules) fun = fn -> mod_configure |> Validation.validate |> EjabberdLogger.log_errors end assert capture_io(fun) == error_msg end end