TF-3912 Thread Detail Fix real time update
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
import '../base/core_robot.dart';
|
||||
|
||||
@@ -8,4 +10,25 @@ class SettingRobot extends CoreRobot {
|
||||
Future<void> openLanguageMenuItem() async {
|
||||
await $(#setting_language_region).tap();
|
||||
}
|
||||
|
||||
Future<void> openPreferencesMenuItem() async {
|
||||
await $(#setting_preferences).tap();
|
||||
}
|
||||
|
||||
Future<void> switchOnThreadSetting() async {
|
||||
final threadSettingOn = $(ValueKey(AppLocalizations().thread))
|
||||
.$(#setting_option_switch_on)
|
||||
.visible;
|
||||
if (!threadSettingOn) {
|
||||
await $(ValueKey(AppLocalizations().thread)).tap();
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> backToSettingsFromFirstLevel() async {
|
||||
await $(#settings_first_level_close_button).tap();
|
||||
}
|
||||
|
||||
Future<void> closeSettings() async {
|
||||
await $(#settings_close_button).tap();
|
||||
}
|
||||
}
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
import 'package:core/presentation/resources/image_paths.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:tmail_ui_user/features/thread_detail/presentation/widgets/thread_detail_collapsed_email.dart';
|
||||
|
||||
import '../../base/base_test_scenario.dart';
|
||||
import '../../robots/composer_robot.dart';
|
||||
import '../../robots/email_robot.dart';
|
||||
import '../../robots/mailbox_menu_robot.dart';
|
||||
import '../../robots/search_robot.dart';
|
||||
import '../../robots/setting_robot.dart';
|
||||
import '../../robots/thread_robot.dart';
|
||||
|
||||
class ThreadDetailReplyRealTimeUpdateScenario extends BaseTestScenario {
|
||||
ThreadDetailReplyRealTimeUpdateScenario(super.$);
|
||||
|
||||
@override
|
||||
Future<void> runTestLogic() async {
|
||||
const subject = 'Reply thread';
|
||||
const replyContent = 'reply thread detail';
|
||||
|
||||
final threadRobot = ThreadRobot($);
|
||||
final mailboxMenuRobot = MailboxMenuRobot($);
|
||||
final settingRobot = SettingRobot($);
|
||||
final searchRobot = SearchRobot($);
|
||||
final emailRobot = EmailRobot($);
|
||||
final composerRobot = ComposerRobot($);
|
||||
final imagePaths = ImagePaths();
|
||||
|
||||
await threadRobot.openMailbox();
|
||||
await mailboxMenuRobot.openSetting();
|
||||
await settingRobot.openPreferencesMenuItem();
|
||||
await settingRobot.switchOnThreadSetting();
|
||||
await settingRobot.backToSettingsFromFirstLevel();
|
||||
await settingRobot.closeSettings();
|
||||
|
||||
await threadRobot.openSearchView();
|
||||
await searchRobot.enterQueryString(subject);
|
||||
await searchRobot.tapOnShowAllResultsText();
|
||||
await searchRobot.openEmailWithSubject(subject);
|
||||
|
||||
await emailRobot.onTapReplyEmail();
|
||||
await composerRobot.grantContactPermission();
|
||||
await composerRobot.addContent(replyContent);
|
||||
await composerRobot.sendEmail(imagePaths);
|
||||
await $.waitUntilVisible($(ThreadDetailCollapsedEmail));
|
||||
expect(
|
||||
$(ThreadDetailCollapsedEmail).which<ThreadDetailCollapsedEmail>((widget) {
|
||||
return widget.preview.contains(replyContent);
|
||||
}),
|
||||
findsOneWidget,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import '../../base/test_base.dart';
|
||||
import '../../scenarios/thread_detail/thread_detail_reply_real_time_update_scenario.dart';
|
||||
|
||||
void main() {
|
||||
TestBase().runPatrolTest(
|
||||
description: 'Should see reply of thread detail',
|
||||
scenarioBuilder: ($) => ThreadDetailReplyRealTimeUpdateScenario($),
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user