Module Mavryk_event_logging_test_helpers.Mock_sink

A mock event sink that records handled events for verifying test expectations.

include Mavryk_event_logging.Internal_event.SINK
type t

A sink can store any required state, e.g. a database handle, in a value of the t type see configure.

val uri_scheme : string

Registered sinks are a distinguished by their URI scheme.

val configure : Uri.t -> t Mavryk_error_monad.Error_monad.tzresult Lwt.t

When a registered sink is activated the configure function is called to initialize it. The parameters should be encoded or obtained from the URI (the scheme of the URI is already uri_scheme).

Predicate deciding whether a sink should handle the event or not.

A sink's main function is to handle incoming events from the code base.

val close : t -> unit Mavryk_error_monad.Error_monad.tzresult Lwt.t

A function to be called on graceful termination of processes (e.g. to flush file-descriptors, etc.).

A filter can be applied when asserting the contents of the sink. This restricts assertions to events from a specific section or to those that have no section. The value filter has the following meaning:

  • filter = None: only keep events that have no section.
  • filter = Some s: only keep events with section s.

Note that the filter is always passed as an optional parameter. It can be omited to keep all events.

type event = {
  1. level : Mavryk_event_logging.Internal_event.Level.t;
  2. section : Mavryk_event_logging.Internal_event.Section.t option;
  3. name : string;
  4. message : string;
  5. json : Data_encoding.json;
}
module Pattern : sig ... end

Describes an event pattern to search for in the sink.

type pattern = Pattern.t
val assert_has_event : string -> ?filter:filter -> ?strict:bool -> pattern -> unit

assert_has_event str filter strict e asserts that Mock_sink has recorded an event e, and fails with the assertion message str if not. If filter is set, only the events whose section is filter are searched. If strict is set, then e must be the only event recorded (subject to filter).

val assert_has_events : string -> ?filter:filter -> ?strict:bool -> pattern list -> unit

assert_has_events str filter strict es asserts that Mock_sink has recorded the list of events es, and fails with the assertion message str if not. If filter is set, only the events whose section is filter are searched. If strict is set, then es must be the only events recorded (subject to filter).

val clear_events : unit -> unit

Clears recorded events, typically called in the initialization of each test.

val is_activated : unit -> bool

Returns true if this sink has been activated

val pp_state : ?filter:filter -> unit -> unit

Pretty prints the list of recorded events

val pp_events_json : Stdlib.Format.formatter -> event list -> unit
val get_events : ?filter:filter -> unit -> event list