TF-3082 Restore identity from cache

This commit is contained in:
DatDang
2024-08-22 09:13:04 +07:00
committed by Dat H. Pham
parent fdbbf855b6
commit 5a1fdbb123
20 changed files with 456 additions and 45 deletions
@@ -30,6 +30,7 @@ import 'package:tmail_ui_user/features/email/domain/usecases/restore_deleted_mes
import 'package:tmail_ui_user/features/email/domain/usecases/unsubscribe_email_interactor.dart';
import 'package:tmail_ui_user/features/home/domain/usecases/get_session_interactor.dart';
import 'package:tmail_ui_user/features/home/domain/usecases/store_session_interactor.dart';
import 'package:tmail_ui_user/features/identity_creator/domain/usecase/get_identity_cache_on_web_interactor.dart';
import 'package:tmail_ui_user/features/login/data/network/interceptors/authorization_interceptors.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/delete_authority_oidc_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/delete_credential_interactor.dart';
@@ -171,6 +172,7 @@ const fallbackGenerators = {
MockSpec<ApplicationManager>(),
MockSpec<ToastManager>(),
MockSpec<GetAllIdentitiesInteractor>(),
MockSpec<GetIdentityCacheOnWebInteractor>(),
])
void main() {
// mock mailbox dashboard controller direct dependencies
@@ -179,6 +181,7 @@ void main() {
MockDeleteEmailPermanentlyInteractor();
final markAsMailboxReadInteractor = MockMarkAsMailboxReadInteractor();
final getEmailCacheOnWebInteractor = MockGetComposerCacheOnWebInteractor();
final getIdentityCacheOnWebInteractor = MockGetIdentityCacheOnWebInteractor();
final markAsEmailReadInteractor = MockMarkAsEmailReadInteractor();
final markAsStarEmailInteractor = MockMarkAsStarEmailInteractor();
final markAsMultipleEmailReadInteractor =
@@ -317,6 +320,7 @@ void main() {
deleteEmailPermanentlyInteractor,
markAsMailboxReadInteractor,
getEmailCacheOnWebInteractor,
getIdentityCacheOnWebInteractor,
markAsEmailReadInteractor,
markAsStarEmailInteractor,
markAsMultipleEmailReadInteractor,
@@ -28,6 +28,7 @@ import 'package:tmail_ui_user/features/email/domain/usecases/restore_deleted_mes
import 'package:tmail_ui_user/features/email/domain/usecases/unsubscribe_email_interactor.dart';
import 'package:tmail_ui_user/features/home/domain/usecases/get_session_interactor.dart';
import 'package:tmail_ui_user/features/home/domain/usecases/store_session_interactor.dart';
import 'package:tmail_ui_user/features/identity_creator/domain/usecase/get_identity_cache_on_web_interactor.dart';
import 'package:tmail_ui_user/features/login/data/network/interceptors/authorization_interceptors.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/delete_authority_oidc_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/delete_credential_interactor.dart';
@@ -170,13 +171,15 @@ const fallbackGenerators = {
MockSpec<ApplicationManager>(),
MockSpec<GetAllIdentitiesInteractor>(),
MockSpec<GetQuotasInteractor>(),
MockSpec<ToastManager>()
MockSpec<ToastManager>(),
MockSpec<GetIdentityCacheOnWebInteractor>(),
])
void main() {
final moveToMailboxInteractor = MockMoveToMailboxInteractor();
final deleteEmailPermanentlyInteractor = MockDeleteEmailPermanentlyInteractor();
final markAsMailboxReadInteractor = MockMarkAsMailboxReadInteractor();
final getEmailCacheOnWebInteractor = MockGetComposerCacheOnWebInteractor();
final getIdentityCacheOnWebInteractor = MockGetIdentityCacheOnWebInteractor();
final markAsEmailReadInteractor = MockMarkAsEmailReadInteractor();
final markAsStarEmailInteractor = MockMarkAsStarEmailInteractor();
final markAsMultipleEmailReadInteractor = MockMarkAsMultipleEmailReadInteractor();
@@ -316,6 +319,7 @@ void main() {
deleteEmailPermanentlyInteractor,
markAsMailboxReadInteractor,
getEmailCacheOnWebInteractor,
getIdentityCacheOnWebInteractor,
markAsEmailReadInteractor,
markAsStarEmailInteractor,
markAsMultipleEmailReadInteractor,
@@ -11,10 +11,15 @@ import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:jmap_dart_client/jmap/identities/identity.dart';
import 'package:mockito/annotations.dart';
import 'package:mockito/mockito.dart';
import 'package:tmail_ui_user/features/base/before_reconnect_manager.dart';
import 'package:tmail_ui_user/features/caching/caching_manager.dart';
import 'package:tmail_ui_user/features/home/domain/usecases/get_session_interactor.dart';
import 'package:tmail_ui_user/features/identity_creator/domain/usecase/save_identity_cache_on_web_interactor.dart';
import 'package:tmail_ui_user/features/login/data/network/interceptors/authorization_interceptors.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/delete_authority_oidc_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/delete_credential_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/get_authenticated_account_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/update_account_cache_interactor.dart';
import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_manager.dart';
import 'package:tmail_ui_user/features/manage_account/domain/state/get_all_identities_state.dart';
import 'package:tmail_ui_user/features/manage_account/domain/usecases/create_new_default_identity_interactor.dart';
@@ -61,6 +66,11 @@ const fallbackGenerators = {
MockSpec<ApplicationManager>(),
MockSpec<ToastManager>(),
// Reloadable controller mockspecs
MockSpec<GetSessionInteractor>(),
MockSpec<GetAuthenticatedAccountInteractor>(),
MockSpec<UpdateAccountCacheInteractor>(),
// Identities controller mockspecs
MockSpec<GetAllIdentitiesInteractor>(),
MockSpec<DeleteIdentityInteractor>(),
@@ -70,6 +80,8 @@ const fallbackGenerators = {
MockSpec<EditDefaultIdentityInteractor>(),
MockSpec<TransformHtmlSignatureInteractor>(),
MockSpec<ManageAccountDashBoardController>(fallbackGenerators: fallbackGenerators),
MockSpec<SaveIdentityCacheOnWebInteractor>(),
MockSpec<BeforeReconnectManager>(),
])
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
@@ -98,6 +110,8 @@ void main() {
late MockApplicationManager mockApplicationManager;
late MockToastManager mockToastManager;
late MockSaveIdentityCacheOnWebInteractor mockSaveIdentityCacheOnWebInteractor;
setUpAll(() {
//mock base controller
mockCachingManager = MockCachingManager();
@@ -114,6 +128,8 @@ void main() {
mockApplicationManager = MockApplicationManager();
mockToastManager = MockToastManager();
mockSaveIdentityCacheOnWebInteractor = MockSaveIdentityCacheOnWebInteractor();
Get.put<CachingManager>(mockCachingManager);
Get.put<LanguageCacheManager>(mockLanguageCacheManager);
Get.put<AuthorizationInterceptors>(mockAuthorizationInterceptors);
@@ -132,6 +148,11 @@ void main() {
Get.put<ApplicationManager>(mockApplicationManager);
Get.put<ToastManager>(mockToastManager);
// mock reloadable controller
Get.put<GetSessionInteractor>(MockGetSessionInteractor());
Get.put<GetAuthenticatedAccountInteractor>(MockGetAuthenticatedAccountInteractor());
Get.put<UpdateAccountCacheInteractor>(MockUpdateAccountCacheInteractor());
// mock identities controller
mockGetAllIdentitiesInteractor = MockGetAllIdentitiesInteractor();
mockDeleteIdentityInteractor = MockDeleteIdentityInteractor();
@@ -142,6 +163,7 @@ void main() {
mockTransformHtmlSignatureInteractor = MockTransformHtmlSignatureInteractor();
mockManageAccountDashBoardController = MockManageAccountDashBoardController();
Get.put<BeforeReconnectManager>(MockBeforeReconnectManager());
Get.put<ManageAccountDashBoardController>(mockManageAccountDashBoardController);
@@ -154,7 +176,8 @@ void main() {
mockEditIdentityInteractor,
mockCreateNewDefaultIdentityInteractor,
mockEditDefaultIdentityInteractor,
mockTransformHtmlSignatureInteractor);
mockTransformHtmlSignatureInteractor,
mockSaveIdentityCacheOnWebInteractor);
});
group('identities controller test:', () {