expectExitDefect<A extends Object, E extends Object> function

({Object defect, StackTrace stackTrace}) expectExitDefect<A extends Object, E extends Object>(
  1. Exit<A, E> exit
)

Extract a defect and stack trace or throw an assertion-oriented exception.

Implementation

({Object defect, StackTrace stackTrace})
expectExitDefect<A extends Object, E extends Object>(Exit<A, E> exit) {
  return switch (exit) {
    ExitDefect<A, E>(:final defect, :final stackTrace) => (
      defect: defect,
      stackTrace: stackTrace,
    ),
    _ => throw BetterEffectTestExpectationException(
      expected: 'ExitDefect<$A, $E>',
      actual: exit,
    ),
  };
}