From 2b12d1ef7939ba51d02377885a74f5413ea94088 Mon Sep 17 00:00:00 2001 From: qzl Date: Wed, 1 Apr 2026 14:20:47 +0800 Subject: [PATCH] test(logging): add logging tests --- apps/test/core/logging/log_entry_test.dart | 84 ++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 apps/test/core/logging/log_entry_test.dart diff --git a/apps/test/core/logging/log_entry_test.dart b/apps/test/core/logging/log_entry_test.dart new file mode 100644 index 0000000..8626c87 --- /dev/null +++ b/apps/test/core/logging/log_entry_test.dart @@ -0,0 +1,84 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:social_app/core/logging/log_entry.dart'; + +void main() { + group('LogEntry', () { + test('toJson should serialize correctly', () { + final entry = LogEntry( + timestamp: DateTime(2026, 4, 1, 10, 0, 0), + level: LogLevel.error, + message: 'Test error', + module: 'test.module', + funcName: 'testFunc', + lineNo: 42, + errorType: 'TestError', + stackTrace: 'test stack', + extra: {'key': 'value'}, + ); + + final json = entry.toJson(); + + expect(json['level'], 'error'); + expect(json['error_type'], 'TestError'); + expect(json['extra'], {'key': 'value'}); + }); + + test('toConsoleString should format correctly', () { + final entry = LogEntry( + timestamp: DateTime(2026, 4, 1, 10, 0, 0), + level: LogLevel.debug, + message: 'Test message', + module: 'test.module', + funcName: 'testFunc', + lineNo: 42, + ); + + final result = entry.toConsoleString(); + + expect(result, contains('DEBUG')); + expect(result, contains('test.module')); + expect(result, contains('testFunc')); + expect(result, contains('@42')); + expect(result, contains('Test message')); + }); + + test('toFileString should format correctly', () { + final entry = LogEntry( + timestamp: DateTime(2026, 4, 1, 10, 0, 0), + level: LogLevel.error, + message: 'Test error', + module: 'test.module', + funcName: 'testFunc', + lineNo: 42, + errorType: 'TestError', + stackTrace: 'test stack trace', + ); + + final result = entry.toFileString(); + + expect(result, contains('[test.module]')); + expect(result, contains('at testFunc:42')); + expect(result, contains('Test error')); + expect(result, contains('Error: TestError')); + expect(result, contains('StackTrace:')); + expect(result, contains('test stack trace')); + }); + + test('toJson should omit null fields', () { + final entry = LogEntry( + timestamp: DateTime(2026, 4, 1, 10, 0, 0), + level: LogLevel.info, + message: 'Test', + module: 'test', + ); + + final json = entry.toJson(); + + expect(json.containsKey('func_name'), false); + expect(json.containsKey('line_no'), false); + expect(json.containsKey('error_type'), false); + expect(json.containsKey('stack_trace'), false); + expect(json.containsKey('extra'), false); + }); + }); +}