formatDiagnosticReport function

String formatDiagnosticReport(
  1. List<DiagnosticCheck> checks
)

Format a diagnostic report for display.

Implementation

String formatDiagnosticReport(List<DiagnosticCheck> checks) {
  final buffer = StringBuffer();
  buffer.writeln('System Diagnostics');
  buffer.writeln('=' * 40);

  for (final check in checks) {
    final icon = switch (check.status) {
      DiagnosticStatus.pass => '✓',
      DiagnosticStatus.warn => '⚠',
      DiagnosticStatus.fail => '✗',
      DiagnosticStatus.skip => '○',
    };
    buffer.write('$icon ${check.name}');
    if (check.detail != null) {
      buffer.write(': ${check.detail}');
    }
    if (check.duration != null) {
      buffer.write(' (${check.duration!.inMilliseconds}ms)');
    }
    buffer.writeln();
  }

  final passed = checks.where((c) => c.status == DiagnosticStatus.pass).length;
  final warned = checks.where((c) => c.status == DiagnosticStatus.warn).length;
  final failed = checks.where((c) => c.status == DiagnosticStatus.fail).length;

  buffer.writeln('=' * 40);
  buffer.writeln('$passed passed, $warned warnings, $failed failed');

  return buffer.toString();
}