Skip to content

Commit

Permalink
Merge pull request #329 from federicoviceconti/feature/log-redirects
Browse files Browse the repository at this point in the history
adding response redirects into dio_logs
  • Loading branch information
Frezyx authored Feb 10, 2025
2 parents a1eea5c + 39dbed9 commit 6a5090f
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 0 deletions.
8 changes: 8 additions & 0 deletions packages/talker_dio_logger/lib/dio_logs.dart
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ class DioResponseLog extends TalkerLog {
final responseMessage = response.statusMessage;
final data = response.data;
final headers = response.headers.map;
final redirects = response.redirects;

msg += '\nStatus: ${response.statusCode}';

Expand All @@ -98,6 +99,13 @@ class DioResponseLog extends TalkerLog {
final prettyHeaders = _encoder.convert(headers);
msg += '\nHeaders: $prettyHeaders';
}

if (settings.printResponseRedirects && redirects.isNotEmpty) {
final prettyRedirects = redirects.map((redirect) {
return '[${redirect.statusCode} ${redirect.method} - ${redirect.location}]';
}).join('\n');
msg += '\nRedirects:\n$prettyRedirects';
}
} catch (_) {
// TODO: add handling can`t convert
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ class TalkerDioLoggerSettings {
this.printResponseData = true,
this.printResponseHeaders = false,
this.printResponseMessage = true,
this.printResponseRedirects = false,
this.printErrorData = true,
this.printErrorHeaders = true,
this.printErrorMessage = true,
Expand All @@ -34,6 +35,9 @@ class TalkerDioLoggerSettings {
/// Print [response.statusMessage] if true
final bool printResponseMessage;

/// Print [response.redirects] if true
final bool printResponseRedirects;

/// Print [error.response.data] if true
final bool printErrorData;

Expand Down
51 changes: 51 additions & 0 deletions packages/talker_dio_logger/test/logs_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,57 @@ void main() {
result, contains('Headers: {\n "Authorization": "Bearer Token"\n}'));
});

test(
'generateTextMessage should include redirects if printResponseRedirects is true',
() {
final requestOptions = RequestOptions(
path: '/test',
method: 'GET',
);
final settings = TalkerDioLoggerSettings(printResponseRedirects: true);
final dioRequestLog = DioResponseLog(
'Test message',
response: Response(
requestOptions: requestOptions,
redirects: [
RedirectRecord(200, 'GET', Uri.parse('about:blank')),
RedirectRecord(200, 'POST', Uri.parse('about:blank')),
],
),
settings: settings,
);

final result = dioRequestLog.generateTextMessage();

expect(
result,
contains(
'Redirects:\n[200 GET - about:blank]\n[200 POST - about:blank]'));
});

test(
'generateTextMessage should not include redirects if printResponseRedirects is false',
() {
final requestOptions = RequestOptions(
path: '/test',
method: 'GET',
);
final settings = TalkerDioLoggerSettings(printResponseRedirects: false);
final dioRequestLog = DioResponseLog(
'Test message',
response: Response(
requestOptions: requestOptions,
redirects: [
RedirectRecord(200, 'GET', Uri.parse('about:blank')),
],
),
settings: settings,
);

final result = dioRequestLog.generateTextMessage();
expect(result.contains('Redirects:'), isFalse);
});

// Add more tests for DioRequestLog as needed
});

Expand Down

0 comments on commit 6a5090f

Please sign in to comment.