TF-3614 E2E Search mailbox

This commit is contained in:
DatDang
2025-04-04 08:53:26 +07:00
committed by Dat H. Pham
parent 22f6ca879a
commit 9222f1ca22
3 changed files with 57 additions and 1 deletions
@@ -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<void> openMailboxSearch() async {
await $(TMailButtonWidget)
.which<TMailButtonWidget>((widget) {
return widget.icon == ImagePaths().icSearchBar;
})
.tap();
}
Future<void> searchMailbox(String query) async {
await $(SearchMailboxView).$(TextFieldBuilder).enterText(query);
await $.pumpAndSettle();
}
Future<void> tapHideMailbox() async {
await $(AppLocalizations().hideFolder).tap();
}
@@ -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<void> 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<void> _expectMailboxViewVisible() async {
await expectViewVisible($(MailboxView));
}
Future<void> _expectMailboxWithNameVisible(String name) async {
await expectViewVisible($(name));
}
}
@@ -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($),
);
}