Files
workavia-mail-front/integration_test/robots/thread_robot.dart
T
2025-09-11 10:31:20 +07:00

70 lines
2.2 KiB
Dart

import 'package:core/presentation/views/search/search_bar_view.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.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';
import 'package:tmail_ui_user/features/thread/presentation/widgets/scroll_to_top_button_widget.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import '../base/core_robot.dart';
class ThreadRobot extends CoreRobot {
ThreadRobot(super.$);
Future<void> openComposer() async {
await $(ComposeFloatingButton).$(InkWell).tap();
}
Future<void> openSearchView() async {
await $(SearchBarView).$(InkWell).tap();
}
Future<void> tapOnSearchField() async {
await $(ThreadView).$(SearchBarView).tap();
}
Future<void> openEmailWithSubject(String subject) async {
final email = $(EmailTileBuilder)
.which<EmailTileBuilder>((view) => view.presentationEmail.subject == subject);
await $.waitUntilVisible(email);
await email.tap();
await $.pump(const Duration(seconds: 2));
}
Future<void> openMailbox() async {
await $(#mobile_mailbox_menu_button).tap();
}
Future<void> tapEmptyTrashBanner() => $(' ${AppLocalizations().empty_trash_now}').tap();
Future<void> tapDeleteAllButtonOnEmptyTrashConfirmDialog(
AppLocalizations appLocalizations,
) => $(appLocalizations.delete_all).tap();
Future<void> scrollToEmailWithSubject(String subject) async {
await $.scrollUntilVisible(finder: $(subject), delta: 300);
await $.pumpAndSettle();
}
Future<void> scrollToTop() async {
await $(ScrollToTopButtonWidget).$(InkWell).tap();
await $.pumpAndSettle();
}
Future<void> openQuickFilter() async {
await $(#mobile_filter_message_button).tap();
}
Future<void> selectAttachmentFilter() async {
await $(#filter_email_attachments).tap();
}
Future<void> selectUnreadFilter() async {
await $(#filter_email_unread).tap();
}
Future<void> selectStarredFilter() async {
await $(#filter_email_starred).tap();
}
}