twonly-app/test/callbacks/logging_callbacks_test.dart

48 lines
1.5 KiB
Dart

import 'package:flutter_test/flutter_test.dart';
import 'package:logging/logging.dart';
import 'package:twonly/src/callbacks/logging.callbacks.dart';
void main() {
group('LoggingCallbacks ANSI stripping', () {
test('removes raw ANSI color escape sequences', () {
LogRecord? captured;
final sub = Logger.root.onRecord.listen((record) {
captured = record;
});
const rawAnsiLog =
'12:34:56 INFO dir/test.rs:42 \x1b[3mreceipt_id\x1b[0m\x1b[2m=\x1b[0m"d9891084-0f7c-4f30-958d-d8619df5a91c" Handling incoming message: FlameSync';
LoggingCallbacks.handleRustLog(rawAnsiLog);
expect(captured, isNotNull);
expect(captured!.loggerName, 'dir/test.rs:42');
expect(
captured!.message,
'receipt_id="d9891084-0f7c-4f30-958d-d8619df5a91c" Handling incoming message: FlameSync',
);
sub.cancel();
});
test('removes escaped caret ANSI notation', () {
LogRecord? captured;
final sub = Logger.root.onRecord.listen((record) {
captured = record;
});
const caretLog =
r'12:34:56 INFO dir/test.rs:42 \^[[3mreceipt_id\^[[0m\^[[2m=\^[[0m"d9891084" \^[[3mkind\^[[0m\^[[2m=\^[[0m"FlameSync" Handling incoming message';
LoggingCallbacks.handleRustLog(caretLog);
expect(captured, isNotNull);
expect(
captured!.message,
'receipt_id="d9891084" kind="FlameSync" Handling incoming message',
);
sub.cancel();
});
});
}