TF-2928 Write unit test for validateUrgentException and onError in BaseController
This commit is contained in:
@@ -111,7 +111,7 @@ abstract class BaseController extends GetxController
|
||||
html.window.onUnload.listen(handleBrowserReloadAction);
|
||||
}
|
||||
|
||||
Future<void> handleBrowserBeforeReloadAction(html.Event event) async {}
|
||||
Future<void> handleBrowserBeforeReloadAction(html.Event event) async {}
|
||||
|
||||
Future<void> handleBrowserReloadAction(html.Event event) async {}
|
||||
|
||||
@@ -141,7 +141,7 @@ abstract class BaseController extends GetxController
|
||||
viewState.value.fold(
|
||||
(failure) {
|
||||
if (failure is FeatureFailure) {
|
||||
final isUrgentException = _validateUrgentException(failure.exception);
|
||||
final isUrgentException = validateUrgentException(failure.exception);
|
||||
if (isUrgentException) {
|
||||
handleUrgentException(failure: failure, exception: failure.exception);
|
||||
} else {
|
||||
@@ -156,7 +156,7 @@ abstract class BaseController extends GetxController
|
||||
|
||||
void onError(dynamic error, StackTrace stackTrace) {
|
||||
logError('$runtimeType::onError():Error: $error | StackTrace: $stackTrace');
|
||||
final isUrgentException = _validateUrgentException(error);
|
||||
final isUrgentException = validateUrgentException(error);
|
||||
if (isUrgentException) {
|
||||
handleUrgentException(exception: error);
|
||||
} else {
|
||||
@@ -166,7 +166,7 @@ abstract class BaseController extends GetxController
|
||||
|
||||
void onDone() {}
|
||||
|
||||
bool _validateUrgentException(dynamic exception) {
|
||||
bool validateUrgentException(dynamic exception) {
|
||||
return exception is NoNetworkError
|
||||
|| exception is BadCredentialsException
|
||||
|| exception is ConnectionError;
|
||||
|
||||
@@ -11,16 +11,10 @@ abstract class AuthenticationException extends RemoteException {
|
||||
|
||||
class BadCredentials extends AuthenticationException {
|
||||
BadCredentials() : super(AuthenticationException.wrongCredential);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [message];
|
||||
}
|
||||
|
||||
class BadGateway extends AuthenticationException {
|
||||
BadGateway() : super(AuthenticationException.badGateway);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [message];
|
||||
}
|
||||
|
||||
class NotFoundAuthenticatedAccountException implements Exception {}
|
||||
@@ -29,9 +23,6 @@ class NotFoundStoredTokenException implements Exception {}
|
||||
|
||||
class InvalidBaseUrl extends AuthenticationException {
|
||||
InvalidBaseUrl() : super(AuthenticationException.invalidBaseUrl);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [message];
|
||||
}
|
||||
|
||||
class NotFoundAccessTokenException implements Exception {}
|
||||
|
||||
@@ -15,48 +15,33 @@ abstract class RemoteException with EquatableMixin implements Exception {
|
||||
final int? code;
|
||||
|
||||
const RemoteException({this.code, this.message});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [message, code];
|
||||
}
|
||||
|
||||
class BadCredentialsException extends RemoteException {
|
||||
const BadCredentialsException() : super(message: RemoteException.badCredentials);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [];
|
||||
}
|
||||
|
||||
class UnknownError extends RemoteException {
|
||||
const UnknownError({int? code, Object? message}) : super(code: code, message: message);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [code, message];
|
||||
}
|
||||
|
||||
class ConnectionError extends RemoteException {
|
||||
const ConnectionError({String? message}) : super(message: message ?? RemoteException.connectionError);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [code, message];
|
||||
}
|
||||
|
||||
class ConnectionTimeout extends RemoteException {
|
||||
const ConnectionTimeout({String? message}) : super(message: message ?? RemoteException.connectionTimeout);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [code, message];
|
||||
}
|
||||
|
||||
class SocketError extends RemoteException {
|
||||
const SocketError() : super(message: RemoteException.socketException);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [code, message];
|
||||
}
|
||||
|
||||
class InternalServerError extends RemoteException {
|
||||
const InternalServerError() : super(message: RemoteException.internalServerError);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [code, message];
|
||||
}
|
||||
|
||||
class MethodLevelErrors extends RemoteException {
|
||||
@@ -68,7 +53,7 @@ class MethodLevelErrors extends RemoteException {
|
||||
) : super(message: message);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [type, code, message];
|
||||
List<Object?> get props => [type, ...super.props];
|
||||
}
|
||||
|
||||
class CannotCalculateChangesMethodResponseException extends MethodLevelErrors {
|
||||
@@ -77,7 +62,4 @@ class CannotCalculateChangesMethodResponseException extends MethodLevelErrors {
|
||||
|
||||
class NoNetworkError extends RemoteException {
|
||||
const NoNetworkError() : super(message: RemoteException.noNetworkError);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [code, message];
|
||||
}
|
||||
Reference in New Issue
Block a user