TF-3707 Handle empty trash with clear mailbox method

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-05-06 16:44:56 +07:00
committed by Dat H. Pham
parent e415077738
commit 322c449d49
10 changed files with 93 additions and 10 deletions
@@ -39,6 +39,7 @@ import 'package:tmail_ui_user/features/login/domain/usecases/get_authenticated_a
import 'package:tmail_ui_user/features/login/domain/usecases/update_account_cache_interactor.dart';
import 'package:tmail_ui_user/features/mailbox/domain/exceptions/empty_folder_name_exception.dart';
import 'package:tmail_ui_user/features/mailbox/domain/exceptions/invalid_mail_format_exception.dart';
import 'package:tmail_ui_user/features/mailbox/domain/usecases/clear_mailbox_interactor.dart';
import 'package:tmail_ui_user/features/mailbox/domain/usecases/create_new_default_mailbox_interactor.dart';
import 'package:tmail_ui_user/features/mailbox/domain/usecases/create_new_mailbox_interactor.dart';
import 'package:tmail_ui_user/features/mailbox/domain/usecases/delete_multiple_mailbox_interactor.dart';
@@ -184,6 +185,7 @@ const fallbackGenerators = {
MockSpec<GetIdentityCacheOnWebInteractor>(),
MockSpec<ComposerManager>(fallbackGenerators: fallbackGenerators),
MockSpec<CleanAndGetEmailsInMailboxInteractor>(),
MockSpec<ClearMailboxInteractor>(),
])
void main() {
// mock mailbox dashboard controller direct dependencies
@@ -271,6 +273,7 @@ void main() {
final removeAllComposerCacheOnWebInteractor = MockRemoveAllComposerCacheOnWebInteractor();
final removeComposerCacheByIdOnWebInteractor = MockRemoveComposerCacheByIdOnWebInteractor();
final getAllIdentitiesInteractor = MockGetAllIdentitiesInteractor();
final clearMailboxInteractor = MockClearMailboxInteractor();
final composerManager = MockComposerManager();
late MailboxController mailboxController;
@@ -322,6 +325,7 @@ void main() {
Get.put<GetAuthenticatedAccountInteractor>(getAuthenticatedAccountInteractor);
Get.put<UpdateAccountCacheInteractor>(updateAccountCacheInteractor);
Get.put<GetAllIdentitiesInteractor>(getAllIdentitiesInteractor);
Get.put<ClearMailboxInteractor>(clearMailboxInteractor);
Get.put<RemoveAllComposerCacheOnWebInteractor>(removeAllComposerCacheOnWebInteractor);
Get.put<RemoveComposerCacheByIdOnWebInteractor>(removeComposerCacheByIdOnWebInteractor);
Get.put<ComposerManager>(composerManager);
@@ -361,6 +365,7 @@ void main() {
removeAllComposerCacheOnWebInteractor,
removeComposerCacheByIdOnWebInteractor,
getAllIdentitiesInteractor,
clearMailboxInteractor,
);
});
@@ -37,6 +37,7 @@ import 'package:tmail_ui_user/features/login/domain/usecases/delete_authority_oi
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/mailbox/domain/usecases/clear_mailbox_interactor.dart';
import 'package:tmail_ui_user/features/mailbox/domain/usecases/create_new_default_mailbox_interactor.dart';
import 'package:tmail_ui_user/features/mailbox/domain/usecases/create_new_mailbox_interactor.dart';
import 'package:tmail_ui_user/features/mailbox/domain/usecases/delete_multiple_mailbox_interactor.dart';
@@ -186,6 +187,7 @@ const fallbackGenerators = {
MockSpec<GetIdentityCacheOnWebInteractor>(),
MockSpec<ComposerManager>(fallbackGenerators: fallbackGenerators),
MockSpec<CleanAndGetEmailsInMailboxInteractor>(),
MockSpec<ClearMailboxInteractor>(),
])
void main() {
final moveToMailboxInteractor = MockMoveToMailboxInteractor();
@@ -258,6 +260,7 @@ void main() {
final removeAllComposerCacheOnWebInteractor = MockRemoveAllComposerCacheOnWebInteractor();
final removeComposerCacheByIdOnWebInteractor = MockRemoveComposerCacheByIdOnWebInteractor();
final getAllIdentitiesInteractor = MockGetAllIdentitiesInteractor();
final clearMailboxInteractor = MockClearMailboxInteractor();
final composerManager = MockComposerManager();
final getEmailsInMailboxInteractor = MockGetEmailsInMailboxInteractor();
@@ -320,6 +323,7 @@ void main() {
Get.put<GetAuthenticatedAccountInteractor>(getAuthenticatedAccountInteractor);
Get.put<UpdateAccountCacheInteractor>(updateAccountCacheInteractor);
Get.put<GetAllIdentitiesInteractor>(getAllIdentitiesInteractor);
Get.put<ClearMailboxInteractor>(clearMailboxInteractor);
Get.put<RemoveAllComposerCacheOnWebInteractor>(removeAllComposerCacheOnWebInteractor);
Get.put<RemoveComposerCacheByIdOnWebInteractor>(removeComposerCacheByIdOnWebInteractor);
Get.put<ComposerManager>(composerManager);
@@ -360,6 +364,7 @@ void main() {
removeAllComposerCacheOnWebInteractor,
removeComposerCacheByIdOnWebInteractor,
getAllIdentitiesInteractor,
clearMailboxInteractor,
);
Get.put(mailboxDashboardController);
mailboxDashboardController.onReady();
@@ -38,6 +38,7 @@ import 'package:tmail_ui_user/features/login/domain/usecases/delete_authority_oi
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/mailbox/domain/usecases/clear_mailbox_interactor.dart';
import 'package:tmail_ui_user/features/mailbox/domain/usecases/mark_as_mailbox_read_interactor.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_all_recent_search_latest_interactor.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web_interactor.dart';
@@ -159,6 +160,7 @@ const fallbackGenerators = {
MockSpec<GetAllIdentitiesInteractor>(),
MockSpec<ComposerManager>(fallbackGenerators: fallbackGenerators),
MockSpec<CleanAndGetEmailsInMailboxInteractor>(),
MockSpec<ClearMailboxInteractor>(),
])
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
@@ -217,6 +219,7 @@ void main() {
late MockRemoveAllComposerCacheOnWebInteractor removeAllComposerCacheOnWebInteractor;
late MockRemoveComposerCacheByIdOnWebInteractor removeComposerCacheByIdOnWebInteractor;
late MockGetAllIdentitiesInteractor getAllIdentitiesInteractor;
late MockClearMailboxInteractor clearMailboxInteractor;
// Declaration base controller
late MockCachingManager mockCachingManager;
@@ -311,6 +314,7 @@ void main() {
removeAllComposerCacheOnWebInteractor = MockRemoveAllComposerCacheOnWebInteractor();
removeComposerCacheByIdOnWebInteractor = MockRemoveComposerCacheByIdOnWebInteractor();
getAllIdentitiesInteractor = MockGetAllIdentitiesInteractor();
clearMailboxInteractor = MockClearMailboxInteractor();
searchController = SearchController(
mockQuickSearchEmailInteractor,
@@ -357,6 +361,7 @@ void main() {
removeAllComposerCacheOnWebInteractor,
removeComposerCacheByIdOnWebInteractor,
getAllIdentitiesInteractor,
clearMailboxInteractor,
);
when(emailReceiveManager.pendingSharedFileInfo).thenAnswer((_) => BehaviorSubject.seeded([]));