TF-2928 Write unit test for validateUrgentException and onError in BaseController

This commit is contained in:
dab246
2024-07-16 14:12:50 +07:00
committed by Dat H. Pham
parent 77246a9d36
commit 103dc9c5e3
4 changed files with 207 additions and 35 deletions
+4 -4
View File
@@ -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 {}
+4 -22
View File
@@ -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];
}