diff --git a/packages/stream_feed/lib/src/core/error/stream_feeds_error.dart b/packages/stream_feed/lib/src/core/error/stream_feeds_error.dart index 8fa64e6e8..209319fa5 100644 --- a/packages/stream_feed/lib/src/core/error/stream_feeds_error.dart +++ b/packages/stream_feed/lib/src/core/error/stream_feeds_error.dart @@ -42,9 +42,8 @@ class StreamFeedsNetworkError extends StreamFeedsError { factory StreamFeedsNetworkError.fromDioError(DioError error) { final response = error.response; ErrorResponse? errorResponse; - final data = json.decode(response?.data); - if (data != null) { - errorResponse = ErrorResponse.fromJson(data); + if (response?.data != null) { + errorResponse = ErrorResponse.fromJson(json.decode(response!.data)); } return StreamFeedsNetworkError.raw( code: errorResponse?.code ?? -1, diff --git a/packages/stream_feed/test/stream_feeds_error_test.dart b/packages/stream_feed/test/stream_feeds_error_test.dart index e900a514e..fa593d64c 100644 --- a/packages/stream_feed/test/stream_feeds_error_test.dart +++ b/packages/stream_feed/test/stream_feeds_error_test.dart @@ -17,6 +17,20 @@ void main() { expect(error.message, message); }); + test('time out', () { + const message = 'Connecting timed out [0ms]'; + final options = RequestOptions(path: 'test-path'); + + final dioError = DioError( + requestOptions: options, + error: 'Connecting timed out [${options.connectTimeout}ms]', + type: DioErrorType.connectTimeout, + ); + final error = StreamFeedsNetworkError.fromDioError(dioError); + expect(error, isNotNull); + expect(error.message, message); + }); + test('.fromDioError', () { const code = 333; const statusCode = 666;