LoggerHandlerKit.Assert (Logger Handler Kit v0.1.0)

View Source

Helpful assertions.

Summary

Functions

Receives a message from handler under test using handler_ref generated by LoggerHandlerKit.Arrange.add_handler/4.

Functions

assert_logged(ref)

Receives a message from handler under test using handler_ref generated by LoggerHandlerKit.Arrange.add_handler/4.

This assertion does 2 important things:

  1. It acts as a synchronization point. Once the message is received, we know that the logger handler is done processing the log event.
  2. It properly reraises any error that the logger handler could encounter. It's sometimes hard to get an error message when testing error messages, so surfacing errors to ExUnit is important.

Example

test "string message"do
  {%{handler_ref: ref}, on_exit} =
    LoggerHandlerKit.Arrange.add_handler(test, :logger_std_h, %{},
   %{formatter: Logger.default_formatter()}
  )

  on_exit(on_exit)

  LoggerHandlerKit.Act.string_message()
  LoggerHandlerKit.Assert.assert_logged(ref)
end