From a9b2d6f5af6df10901f0b4b2695d24509a0edf90 Mon Sep 17 00:00:00 2001 From: dab246 Date: Mon, 4 Aug 2025 03:30:17 +0700 Subject: [PATCH] TF-3834 Add integration test for to make sure set up relevance sort being the default Signed-off-by: dab246 --- ...t_order_relevance_by_default_scenario.dart | 57 +++++++++++++++++++ ..._sort_order_relevance_by_default_test.dart | 9 +++ 2 files changed, 66 insertions(+) create mode 100644 integration_test/scenarios/search/search_email_with_sort_order_relevance_by_default_scenario.dart create mode 100644 integration_test/tests/search/search_email_with_sort_order_relevance_by_default_test.dart diff --git a/integration_test/scenarios/search/search_email_with_sort_order_relevance_by_default_scenario.dart b/integration_test/scenarios/search/search_email_with_sort_order_relevance_by_default_scenario.dart new file mode 100644 index 000000000..8d490afd3 --- /dev/null +++ b/integration_test/scenarios/search/search_email_with_sort_order_relevance_by_default_scenario.dart @@ -0,0 +1,57 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/search_filters/search_filter_button.dart'; +import 'package:tmail_ui_user/features/search/email/presentation/search_email_view.dart'; +import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; + +import '../../base/base_test_scenario.dart'; +import '../../models/provisioning_email.dart'; +import '../../robots/search_robot.dart'; +import '../../robots/thread_robot.dart'; + +class SearchEmailWithSortOrderRelevanceByDefaultScenario + extends BaseTestScenario { + const SearchEmailWithSortOrderRelevanceByDefaultScenario(super.$); + + static const queryString = 'Relevance by default'; + static const listUsername = ['Alice', 'Brian', 'Charlotte', 'David', 'Emma']; + + @override + Future runTestLogic() async { + final listProvisioningEmail = listUsername + .map((username) => ProvisioningEmail( + toEmail: '${username.toLowerCase()}@example.com', + subject: queryString, + content: '$queryString to user $username', + )) + .toList(); + + await provisionEmail(listProvisioningEmail); + await $.pumpAndSettle(); + + final threadRobot = ThreadRobot($); + await threadRobot.openSearchView(); + await _expectSearchViewVisible(); + + final searchRobot = SearchRobot($); + await searchRobot.enterQueryString(queryString); + await searchRobot.tapOnShowAllResultsText(); + await _expectSearchResultEmailListVisible(); + + await searchRobot.scrollToEndListSearchFilter(); + await _expectRelevanceSortOrderButtonVisible(); + } + + Future _expectSearchViewVisible() async { + await expectViewVisible($(SearchEmailView)); + } + + Future _expectSearchResultEmailListVisible() async { + await expectViewVisible($(#search_email_list_notification_listener)); + } + + Future _expectRelevanceSortOrderButtonVisible() async { + await expectViewVisible( + $(SearchFilterButton).$(AppLocalizations().relevance), + ); + } +} diff --git a/integration_test/tests/search/search_email_with_sort_order_relevance_by_default_test.dart b/integration_test/tests/search/search_email_with_sort_order_relevance_by_default_test.dart new file mode 100644 index 000000000..34262ab79 --- /dev/null +++ b/integration_test/tests/search/search_email_with_sort_order_relevance_by_default_test.dart @@ -0,0 +1,9 @@ +import '../../base/test_base.dart'; +import '../../scenarios/search/search_email_with_sort_order_relevance_by_default_scenario.dart'; + +void main() { + TestBase().runPatrolTest( + description: 'Should see list email displayed by sort order `Relevance` by default when search email successfully', + scenarioBuilder: ($) => SearchEmailWithSortOrderRelevanceByDefaultScenario($), + ); +} \ No newline at end of file