Pact.Patterns.JsonPattern (pact_consumer_ex v0.1.0)

A pattern which can be used to either:

  1. generate a sample JSON value, or
  2. test whether a JSON value matches the pattern.

Many common types can be used as JSON patterns.

Summary

Types

matcher()

@type matcher() ::
  {:datetime, String.t(), String.t()}
  | {:like, t()}
  | {:each_like, t()}
  | {:matching_regex, String.t(), String.t()}

t()

@type t() ::
  integer()
  | float()
  | boolean()
  | nil
  | binary()
  | atom()
  | [t()]
  | %{key: t()}
  | matcher()

Functions

datetime(format, example)

@spec datetime(format :: String.t(), example :: String.t()) :: t()

each_like(pattern)

@spec each_like(pattern :: any()) :: t()

json_pattern(pattern)

@spec json_pattern(pattern :: t()) :: t()

like(pattern)

@spec like(pattern :: any()) :: t()

matching_regex(regex, example)

@spec matching_regex(regex :: String.t(), example :: String.t()) :: t()

term(regex, example)

@spec term(regex :: String.t(), example :: String.t()) :: t()