Step and scenario result types.
Summary
Functions
Returns a failed result wrapping an error.
Returns a passed result.
Returns the worst result by priority: failed > ambiguous > undefined > pending > flaky > skipped > passed.
Types
@type status() ::
:passed | :failed | :pending | :undefined | :skipped | :ambiguous | :flaky
@type t() :: %Cucumberex.Result{ duration_ms: non_neg_integer() | nil, error: Exception.t() | nil, status: status() }
Functions
iex> Cucumberex.Result.ambiguous([:a, :b]).status
:ambiguous
Returns a failed result wrapping an error.
iex> r = Cucumberex.Result.failed(%RuntimeError{message: "oops"})
iex> r.status
:failed
iex> Cucumberex.Result.failed?(%Cucumberex.Result{status: :failed})
true
iex> Cucumberex.Result.failed?(%Cucumberex.Result{status: :passed})
false
iex> Cucumberex.Result.flaky().status
:flaky
iex> Cucumberex.Result.ok?(%Cucumberex.Result{status: :passed})
true
iex> Cucumberex.Result.ok?(%Cucumberex.Result{status: :skipped})
true
iex> Cucumberex.Result.ok?(%Cucumberex.Result{status: :failed})
false
Returns a passed result.
iex> Cucumberex.Result.passed().status
:passed
iex> Cucumberex.Result.passed(100).duration_ms
100
iex> Cucumberex.Result.passed?(%Cucumberex.Result{status: :passed})
true
iex> Cucumberex.Result.passed?(%Cucumberex.Result{status: :failed})
false
iex> Cucumberex.Result.pending().status
:pending
iex> Cucumberex.Result.skipped().status
:skipped
iex> Cucumberex.Result.to_exit_code([Cucumberex.Result.passed()])
0
iex> Cucumberex.Result.to_exit_code([Cucumberex.Result.failed(%RuntimeError{})])
1
iex> Cucumberex.Result.undefined().status
:undefined
Returns the worst result by priority: failed > ambiguous > undefined > pending > flaky > skipped > passed.
iex> results = [Cucumberex.Result.passed(), Cucumberex.Result.failed(%RuntimeError{})]
iex> Cucumberex.Result.worst(results).status
:failed