getStatusFromError function

AllureStatus getStatusFromError(
  1. Object error, [
  2. StackTrace? stackTrace
])

Maps an error object to the closest Allure status.

Implementation

AllureStatus getStatusFromError(Object error, [StackTrace? stackTrace]) {
  final typeName = error.runtimeType.toString().toLowerCase();
  final message = error.toString().toLowerCase();
  final trace = stackTrace?.toString().toLowerCase() ?? '';

  bool containsAssertionSignal(String value) {
    return value.contains('assert') ||
        value.contains('expectation') ||
        value.contains('matcher');
  }

  if (containsAssertionSignal(typeName) ||
      containsAssertionSignal(message) ||
      trace.contains('package:matcher') ||
      trace.contains('package:test') ||
      _hasDynamicField(error, 'matcherResult') ||
      _hasDynamicField(error, 'actual') ||
      _hasDynamicField(error, 'expected')) {
    return AllureStatus.failed;
  }

  return AllureStatus.broken;
}