test(logging): add logging tests

This commit is contained in:
qzl
2026-04-01 14:20:47 +08:00
parent 227c9c123c
commit 2b12d1ef79
@@ -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);
});
});
}