report method

  1. @override
void report(
  1. String approvedPath,
  2. String receivedPath, {
  3. String? message,
})
override

Implementation

@override
void report(String approvedPath, String receivedPath, {String? message}) {
  try {
    final buffer = StringBuffer(message ?? "Differences:\n");

    final approvedLines = _readFileLines(approvedPath);
    final receivedLines = _readFileLines(receivedPath);

    final maxLines = max(approvedLines.length, receivedLines.length);

    for (var i = 0; i < maxLines; i++) {
      final approvedLine = i < approvedLines.length ? approvedLines[i] : "";
      final receivedLine = i < receivedLines.length ? receivedLines[i] : "";

      if (approvedLine != receivedLine) {
        _appendDifference(buffer, i + 1, approvedLine, receivedLine);
      }
    }

    if (buffer.isNotEmpty) {
      ApprovalLogger.exception(buffer.toString());
    }
  } catch (e) {
    // Logging and rethrowing to preserve error stack trace
    ApprovalLogger.exception("Error while reporting differences: \$e");
    rethrow;
  }
}