TF-3834 Implement remember user sort order after search
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
+6
@@ -20,6 +20,7 @@ import 'package:tmail_ui_user/features/login/domain/usecases/delete_credential_i
|
||||
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/quick_search_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_recent_search_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/store_email_sort_order_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart';
|
||||
@@ -67,6 +68,7 @@ const fallbackGenerators = {
|
||||
MockSpec<QuickSearchEmailInteractor>(),
|
||||
MockSpec<SaveRecentSearchInteractor>(),
|
||||
MockSpec<GetAllRecentSearchLatestInteractor>(),
|
||||
MockSpec<StoreEmailSortOrderInteractor>(),
|
||||
])
|
||||
void main() {
|
||||
// Declaration advanced filter controller
|
||||
@@ -80,6 +82,7 @@ void main() {
|
||||
late MockQuickSearchEmailInteractor mockQuickSearchEmailInteractor;
|
||||
late MockSaveRecentSearchInteractor mockSaveRecentSearchInteractor;
|
||||
late MockGetAllRecentSearchLatestInteractor mockGetAllRecentSearchLatestInteractor;
|
||||
late MockStoreEmailSortOrderInteractor mockStoreEmailSortOrderInteractor;
|
||||
|
||||
// Declaration base controller
|
||||
late MockCachingManager mockCachingManager;
|
||||
@@ -138,6 +141,7 @@ void main() {
|
||||
mockQuickSearchEmailInteractor = MockQuickSearchEmailInteractor();
|
||||
mockSaveRecentSearchInteractor = MockSaveRecentSearchInteractor();
|
||||
mockGetAllRecentSearchLatestInteractor = MockGetAllRecentSearchLatestInteractor();
|
||||
mockStoreEmailSortOrderInteractor = MockStoreEmailSortOrderInteractor();
|
||||
|
||||
searchController = SearchController(
|
||||
mockQuickSearchEmailInteractor,
|
||||
@@ -152,6 +156,7 @@ void main() {
|
||||
|
||||
Get.put<MailboxDashBoardController>(mockMailboxDashBoardController);
|
||||
Get.put<GetAutoCompleteInteractor>(mockGetAutoCompleteInteractor);
|
||||
Get.put<StoreEmailSortOrderInteractor>(mockStoreEmailSortOrderInteractor);
|
||||
|
||||
advancedFilterController = AdvancedFilterController();
|
||||
});
|
||||
@@ -160,6 +165,7 @@ void main() {
|
||||
group('applyAdvancedSearchFilter::test', () {
|
||||
test('SHOULD make sure memory search filter and search filter should be the same after applying', () async {
|
||||
// Arrange
|
||||
advancedFilterController.setMemorySearchFilter(SearchEmailFilter.initial());
|
||||
advancedFilterController.hasKeyWordFilterInputController.text = 'Hello';
|
||||
advancedFilterController.notKeyWordFilterInputController.text = 'dab';
|
||||
advancedFilterController.listFromEmailAddress = [EmailAddress(null, 'user1@example.com')];
|
||||
|
||||
+12
-2
@@ -60,11 +60,13 @@ import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_tree_b
|
||||
import 'package:tmail_ui_user/features/mailbox_creator/domain/usecases/verify_name_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';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_stored_email_sort_order_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/quick_search_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_all_composer_cache_on_web_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_composer_cache_by_id_on_web_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_email_drafts_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_recent_search_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/store_email_sort_order_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/app_grid_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/download/download_controller.dart';
|
||||
@@ -149,6 +151,8 @@ const fallbackGenerators = {
|
||||
MockSpec<QuickSearchEmailInteractor>(),
|
||||
MockSpec<SaveRecentSearchInteractor>(),
|
||||
MockSpec<GetAllRecentSearchLatestInteractor>(),
|
||||
MockSpec<StoreEmailSortOrderInteractor>(),
|
||||
MockSpec<GetStoredEmailSortOrderInteractor>(),
|
||||
MockSpec<GetSessionInteractor>(),
|
||||
MockSpec<GetAuthenticatedAccountInteractor>(),
|
||||
MockSpec<UpdateAccountCacheInteractor>(),
|
||||
@@ -241,6 +245,8 @@ void main() {
|
||||
final quickSearchEmailInteractor = MockQuickSearchEmailInteractor();
|
||||
final saveRecentSearchInteractor = MockSaveRecentSearchInteractor();
|
||||
final getAllRecentSearchLatestInteractor = MockGetAllRecentSearchLatestInteractor();
|
||||
final storeEmailSortOrderInteractor = MockStoreEmailSortOrderInteractor();
|
||||
final getStoredEmailSortOrderInteractor = MockGetStoredEmailSortOrderInteractor();
|
||||
late SearchController searchController;
|
||||
|
||||
// mock base controller Get dependencies
|
||||
@@ -380,6 +386,8 @@ void main() {
|
||||
removeComposerCacheByIdOnWebInteractor,
|
||||
getAllIdentitiesInteractor,
|
||||
clearMailboxInteractor,
|
||||
storeEmailSortOrderInteractor,
|
||||
getStoredEmailSortOrderInteractor,
|
||||
);
|
||||
});
|
||||
|
||||
@@ -460,7 +468,7 @@ void main() {
|
||||
getLatestChanges: anyNamed('getLatestChanges'),
|
||||
propertiesCreated: anyNamed('propertiesCreated'),
|
||||
propertiesUpdated: anyNamed('propertiesUpdated')));
|
||||
expect(searchController.sortOrderFiltered, EmailSortOrderType.mostRecent);
|
||||
expect(searchController.sortOrderFiltered, SearchEmailFilter.defaultSortOrder);
|
||||
expect(searchController.searchEmailFilter.value, SearchEmailFilter.initial());
|
||||
verify(getEmailsInMailboxInteractor.execute(
|
||||
testSession, testAccountId,
|
||||
@@ -490,6 +498,7 @@ void main() {
|
||||
when(context.mounted).thenReturn(true);
|
||||
|
||||
// expect query in advanced filter controller update as expected
|
||||
advancedFilterController.setMemorySearchFilter(SearchEmailFilter.initial());
|
||||
advancedFilterController.updateListEmailAddress(FilterField.from, [fromEmailAddress]);
|
||||
advancedFilterController.updateListEmailAddress(FilterField.to, [toEmailAddress]);
|
||||
advancedFilterController.subjectFilterInputController.text = emailSubject;
|
||||
@@ -520,7 +529,7 @@ void main() {
|
||||
getLatestChanges: anyNamed('getLatestChanges'),
|
||||
propertiesCreated: anyNamed('propertiesCreated'),
|
||||
propertiesUpdated: anyNamed('propertiesUpdated')));
|
||||
expect(searchController.sortOrderFiltered, EmailSortOrderType.mostRecent);
|
||||
expect(searchController.sortOrderFiltered, SearchEmailFilter.defaultSortOrder);
|
||||
expect(searchController.searchEmailFilter.value, SearchEmailFilter.initial());
|
||||
verify(getEmailsInMailboxInteractor.execute(
|
||||
testSession, testAccountId,
|
||||
@@ -565,6 +574,7 @@ void main() {
|
||||
text: SearchQuery(queryString),
|
||||
emailReceiveTimeType: EmailReceiveTimeType.last30Days,
|
||||
hasAttachment: true,
|
||||
position: 0,
|
||||
)
|
||||
);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user