Skip to content

Commit

Permalink
feat: add test for new error setting field
Browse files Browse the repository at this point in the history
  • Loading branch information
Ali1Ammar committed May 7, 2024
1 parent f5d792a commit 4c44df2
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 0 deletions.
36 changes: 36 additions & 0 deletions packages/talker_dio_logger/test/logs_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,42 @@ void main() {
'Message: Error message'));
});

test(
'generateTextMessage should not include data, header and message if disabled',
() {
final dioException = DioException(
requestOptions: RequestOptions(path: '/test', method: 'GET'),
message: 'Error message',
response: Response(
requestOptions: RequestOptions(path: '/test', method: 'GET'),
headers: Headers.fromMap(
{
'content-type': ['application/json'],
},
)));
final settings = TalkerDioLoggerSettings(
errorPen: AnsiPen()..blue(),
printErrorData: false,
printErrorHeaders: false,
printErrorMessage: false,
);
final dioErrorLog = DioErrorLog('Error title',
dioException: dioException, settings: settings);

final result = dioErrorLog.generateTextMessage();
expect(result, contains('[log] [GET] Error title'));
expect(result, isNot(contains('Message: Error message')));
expect(
result,
isNot(contains(
'Headers: {\n'
' "content-type": [\n'
' "application/json"\n'
' ]\n'
'}',
)));
});

test(
'generateTextMessage should include status if response has a status code',
() {
Expand Down
23 changes: 23 additions & 0 deletions packages/talker_dio_logger/test/settings_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@ void main() {
final updatedSettings = originalSettings.copyWith(
printResponseData: false,
printRequestHeaders: true,
printErrorHeaders: false,
requestPen: AnsiPen()..yellow(),
responseFilter: null,
);

expect(updatedSettings.printResponseData, equals(false));
expect(updatedSettings.printRequestHeaders, equals(true));
expect(updatedSettings.printErrorHeaders, equals(false));
expect(
updatedSettings.requestPen, isNot(same(originalSettings.requestPen)));
expect(updatedSettings.responseFilter, isNull);
Expand Down Expand Up @@ -46,6 +48,21 @@ void main() {
expect(settings.responseFilter!(unsuccessfulResponse), equals(false));
});

test('errorFilter should return true for cancelled responses', () {
final settings = TalkerDioLoggerSettings(
errorFilter: (DioException err) =>
err.type == DioExceptionType.cancel);
final cancelledResponse = DioException(
requestOptions: RequestOptions(path: '/test'),
type: DioExceptionType.cancel);
final timeoutResponse = DioException(
requestOptions: RequestOptions(path: '/test'),
type: DioExceptionType.sendTimeout);

expect(settings.errorFilter!(cancelledResponse), equals(true));
expect(settings.errorFilter!(timeoutResponse), equals(false));
});

test(
'copyWith should create a new instance with updated values for all fields',
() {
Expand All @@ -55,6 +72,8 @@ void main() {
printResponseMessage: true,
printRequestData: true,
printRequestHeaders: false,
printErrorHeaders: false,
printErrorData: true,
requestPen: AnsiPen()..green(),
responsePen: AnsiPen()..cyan(),
errorPen: AnsiPen()..red(),
Expand All @@ -63,13 +82,17 @@ void main() {
final updatedSettings = originalSettings.copyWith(
printResponseData: false,
printRequestHeaders: true,
printErrorHeaders: true,
printErrorData: false,
requestPen: AnsiPen()..yellow(),
);

expect(updatedSettings.printResponseData, equals(false));
expect(updatedSettings.printResponseHeaders, equals(false));
expect(updatedSettings.printResponseMessage, equals(true));
expect(updatedSettings.printRequestData, equals(true));
expect(updatedSettings.printErrorHeaders, equals(true));
expect(updatedSettings.printErrorData, equals(false));
expect(
updatedSettings.printRequestHeaders,
equals(true),
Expand Down

0 comments on commit 4c44df2

Please sign in to comment.