diff --git a/integration_test/robots/mailbox_menu_robot.dart b/integration_test/robots/mailbox_menu_robot.dart index 5a87248e5..2c2a9f135 100644 --- a/integration_test/robots/mailbox_menu_robot.dart +++ b/integration_test/robots/mailbox_menu_robot.dart @@ -1,4 +1,3 @@ - import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/views/button/tmail_button_widget.dart'; import 'package:core/presentation/views/text/text_field_builder.dart'; @@ -7,6 +6,7 @@ import 'package:get/get.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/widgets/label_mailbox_item_widget.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/widgets/mailbox_item_widget.dart'; import 'package:tmail_ui_user/features/mailbox_creator/presentation/mailbox_creator_view.dart'; +import 'package:tmail_ui_user/features/search/mailbox/presentation/search_mailbox_view.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart'; @@ -65,6 +65,19 @@ class MailboxMenuRobot extends CoreRobot { .tap(); } + Future openMailboxSearch() async { + await $(TMailButtonWidget) + .which((widget) { + return widget.icon == ImagePaths().icSearchBar; + }) + .tap(); + } + + Future searchMailbox(String query) async { + await $(SearchMailboxView).$(TextFieldBuilder).enterText(query); + await $.pumpAndSettle(); + } + Future tapHideMailbox() async { await $(AppLocalizations().hideFolder).tap(); } diff --git a/integration_test/scenarios/mailbox/search_mailbox_inbox_scenario.dart b/integration_test/scenarios/mailbox/search_mailbox_inbox_scenario.dart new file mode 100644 index 000000000..7ef5b08b3 --- /dev/null +++ b/integration_test/scenarios/mailbox/search_mailbox_inbox_scenario.dart @@ -0,0 +1,34 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_view.dart'; +import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; + +import '../../base/base_test_scenario.dart'; +import '../../robots/mailbox_menu_robot.dart'; +import '../../robots/thread_robot.dart'; + +class SearchMailboxInboxScenario extends BaseTestScenario { + const SearchMailboxInboxScenario(super.$); + + @override + Future runTestLogic() async { + final threadRobot = ThreadRobot($); + final mailboxMenuRobot = MailboxMenuRobot($); + final appLocalizations = AppLocalizations(); + + await threadRobot.openMailbox(); + await _expectMailboxViewVisible(); + + await _expectMailboxWithNameVisible(appLocalizations.inboxMailboxDisplayName); + await mailboxMenuRobot.openMailboxSearch(); + await mailboxMenuRobot.searchMailbox(appLocalizations.inboxMailboxDisplayName); + await _expectMailboxWithNameVisible(appLocalizations.inboxMailboxDisplayName); + } + + Future _expectMailboxViewVisible() async { + await expectViewVisible($(MailboxView)); + } + + Future _expectMailboxWithNameVisible(String name) async { + await expectViewVisible($(name)); + } +} \ No newline at end of file diff --git a/integration_test/tests/mailbox/search_mailbox_inbox_test.dart b/integration_test/tests/mailbox/search_mailbox_inbox_test.dart new file mode 100644 index 000000000..3fb8e754c --- /dev/null +++ b/integration_test/tests/mailbox/search_mailbox_inbox_test.dart @@ -0,0 +1,9 @@ +import '../../base/test_base.dart'; +import '../../scenarios/mailbox/search_mailbox_inbox_scenario.dart'; + +void main() { + TestBase().runPatrolTest( + description: 'Should see expected mailbox when searching mailboxes', + scenarioBuilder: ($) => SearchMailboxInboxScenario($), + ); +} \ No newline at end of file