Skip to content

Commit

Permalink
184 Don't log not modified as error
Browse files Browse the repository at this point in the history
  • Loading branch information
ikbendewilliam committed Oct 21, 2022
1 parent cebd49e commit dc90b14
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 24 deletions.
7 changes: 7 additions & 0 deletions lib/util/interceptor/network_log_interceptor.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:io';

import 'package:dio/dio.dart';
import 'package:flutter_template/model/exceptions/general_error.dart';
import 'package:icapps_architecture/icapps_architecture.dart';
Expand All @@ -19,6 +21,11 @@ class NetworkLogInterceptor extends SimpleInterceptor {

@override
Future<Object?> onError(DioError error) async {
final response = error.response;
if (response != null && response.statusCode == HttpStatus.notModified) {
logger.logNetworkResponse(response);
return super.onError(error);
}
if (error is NetworkError) {
logger.logNetworkError(error);
} else {
Expand Down
47 changes: 23 additions & 24 deletions test/util/interceptor/network_log_interceptor_test.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:io';

import 'package:dio/dio.dart';
import 'package:flutter_template/model/exceptions/internal_server_error.dart';
import 'package:flutter_template/util/interceptor/network_log_interceptor.dart';
Expand All @@ -7,55 +9,52 @@ import '../../di/test_injectable.dart';

void main() {
late NetworkLogInterceptor sut;
late RequestOptions requestOptions;

setUp(() async {
await initTestInjectable();
sut = NetworkLogInterceptor();
});

test('NetworkLogInterceptor test log request', () async {
final request = RequestOptions(
requestOptions = RequestOptions(
baseUrl: 'https://test.com/',
path: 'testing',
method: 'GET',
);
});

test('NetworkLogInterceptor test log request', () async {
final request = requestOptions;
final dynamic result = await sut.onRequest(request);
expect(result, request);
});

test('NetworkLogInterceptor test log response', () async {
final response = Response<void>(
requestOptions: RequestOptions(
baseUrl: 'https://test.com/',
path: 'testing',
method: 'GET',
),
);
final response = Response<void>(requestOptions: requestOptions);
final dynamic result = await sut.onResponse(response);
expect(result, response);
});

test('NetworkLogInterceptor test log error', () async {
final error = DioError(
requestOptions: RequestOptions(
baseUrl: 'https://test.com/',
path: 'testing',
method: 'GET',
),
);
final error = DioError(requestOptions: requestOptions);
final dynamic result = await sut.onError(error);
expect(result, error);
});

test('NetworkLogInterceptor test log error with network error', () async {
final error = InternalServerError(
DioError(
requestOptions: RequestOptions(
baseUrl: 'https://test.com/',
path: 'testing',
method: 'GET',
),
DioError(requestOptions: requestOptions),
);
final dynamic result = await sut.onError(error);
expect(result, error);
});

test('NetworkLogInterceptor test doesn\'t log not modified', () async {
final error = DioError(
error: HttpStatus.notModified,
response: Response<void>(
requestOptions: requestOptions,
statusCode: HttpStatus.notModified,
),
requestOptions: requestOptions,
);
final dynamic result = await sut.onError(error);
expect(result, error);
Expand Down

0 comments on commit dc90b14

Please sign in to comment.