Current section
Files
Jump to
Current section
Files
lib/test_helper/rollbax_fake.ex
defmodule ElixirTools.RollbaxFake do
@spec report_message(:critical | :error | :warning | :info | :debug, IO.chardata(), map, map) ::
:ok
def report_message(level, message, custom \\ %{}, occurrence_data \\ %{}) do
ensure_no_struct(custom)
ensure_no_struct(occurrence_data)
send(self(), [:rollbax_message, level, message, custom, occurrence_data])
end
@spec report(:error | :exit | :throw, any, [any], map, map) :: :ok
def report(kind, value, stacktrace, custom \\ %{}, occurrence_data \\ %{}) do
ensure_no_struct(custom)
ensure_no_struct(occurrence_data)
send(self(), [:rollbax_report, kind, value, stacktrace, custom, occurrence_data])
end
@spec ensure_no_struct(any) :: no_return() | :ok
defp ensure_no_struct(map) when is_struct(map) do
raise "Rollbax does not know how to handle structs and will raise an error. Convert it to a map."
end
defp ensure_no_struct(map) when is_map(map) do
for {_k, v} <- map, do: ensure_no_struct(v)
end
defp ensure_no_struct(_), do: :ok
end