TF-4236 Add integration test on mobile for case remove_a_label_from_email_scenario

This commit is contained in:
dab246
2026-01-20 15:50:54 +07:00
committed by Dat H. Pham
parent b76df6a6f6
commit 326f5e46f5
4 changed files with 122 additions and 0 deletions
+7
View File
@@ -1,8 +1,11 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:tmail_ui_user/features/base/widget/labels/tag_widget.dart';
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_item_widget.dart';
import 'package:tmail_ui_user/features/email/presentation/widgets/email_subject_widget.dart';
import 'package:tmail_ui_user/features/email/presentation/widgets/email_view_back_button.dart';
import 'package:tmail_ui_user/features/email/presentation/widgets/information_sender_and_receiver_builder.dart';
import 'package:tmail_ui_user/features/labels/presentation/widgets/label_widget.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import '../base/core_robot.dart';
@@ -83,4 +86,8 @@ class EmailRobot extends CoreRobot {
Future<void> onTapAttachmentItem() async {
await $(AttachmentItemWidget).$(InkWell).tap();
}
Future<void> tapRemoveLabelButton(String labelDisplayName) async {
await $(EmailSubjectWidget).$(LabelWidget).$(TagWidget).$(InkWell).tap();
}
}
+12
View File
@@ -1,6 +1,7 @@
import 'package:core/presentation/views/search/search_bar_view.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:labels/extensions/label_extension.dart';
import 'package:tmail_ui_user/features/base/widget/compose_floating_button.dart';
import 'package:tmail_ui_user/features/thread/presentation/thread_view.dart';
import 'package:tmail_ui_user/features/thread/presentation/widgets/email_tile_builder.dart';
@@ -32,6 +33,17 @@ class ThreadRobot extends CoreRobot {
await $.pump(const Duration(seconds: 2));
}
Future<void> openEmailWithLabel(String labelDisplayName) async {
final email = $(EmailTileBuilder).which<EmailTileBuilder>(
(view) =>
view.labels
?.any((label) => label.safeDisplayName == labelDisplayName) ==
true,
);
await $.waitUntilVisible(email);
await email.tap();
}
Future<void> openMailbox() async {
await $(#mobile_mailbox_menu_button).tap();
}