TF-3493 Override enterText of Patrol Finder
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
|
||||
import 'package:patrol_log/patrol_log.dart';
|
||||
import 'package:patrol_finders/patrol_finders.dart';
|
||||
|
||||
import 'patrol_tester_extension.dart';
|
||||
|
||||
extension PatrolFinderExtension on PatrolFinder {
|
||||
|
||||
Future<void> enterTextWithoutTapAction(String text) async =>
|
||||
wrapWithPatrolLog(
|
||||
action: 'enterText',
|
||||
color: AnsiCodes.magenta,
|
||||
function: () => tester.enterTextWithoutTapAction(
|
||||
this,
|
||||
text,
|
||||
enablePatrolLog: false,
|
||||
),
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:patrol_log/patrol_log.dart';
|
||||
import 'package:patrol_finders/patrol_finders.dart';
|
||||
|
||||
extension PatrolFinderExtension on PatrolTester {
|
||||
|
||||
Future<void> enterTextWithoutTapAction(
|
||||
Finder finder,
|
||||
String text,
|
||||
{
|
||||
bool enablePatrolLog = true,
|
||||
}
|
||||
) {
|
||||
return TestAsyncUtils.guard(
|
||||
() => wrapWithPatrolLog(
|
||||
action: 'enterText',
|
||||
value: text,
|
||||
finder: finder,
|
||||
color: AnsiCodes.magenta,
|
||||
enablePatrolLog: enablePatrolLog,
|
||||
function: () async {
|
||||
final resolvedFinder = await waitUntilVisible(
|
||||
finder,
|
||||
enablePatrolLog: false,
|
||||
);
|
||||
await tester.enterText(resolvedFinder.first, text);
|
||||
await _performPump();
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _performPump() async {
|
||||
final settle = config.settlePolicy;
|
||||
final timeout = config.settleTimeout;
|
||||
if (settle == SettlePolicy.trySettle) {
|
||||
await pumpAndTrySettle(
|
||||
timeout: timeout,
|
||||
);
|
||||
} else if (settle == SettlePolicy.settle) {
|
||||
await pumpAndSettle(
|
||||
timeout: timeout,
|
||||
);
|
||||
} else {
|
||||
await tester.pump();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,7 @@ import 'package:tmail_ui_user/features/composer/presentation/widgets/recipient_s
|
||||
import 'package:tmail_ui_user/features/composer/presentation/widgets/subject_composer_widget.dart';
|
||||
|
||||
import '../base/core_robot.dart';
|
||||
import '../extensions/patrol_finder_extension.dart';
|
||||
|
||||
class ComposerRobot extends CoreRobot {
|
||||
ComposerRobot(super.$);
|
||||
@@ -25,7 +26,7 @@ class ComposerRobot extends CoreRobot {
|
||||
if (!isTextFieldFocused) {
|
||||
await finder.tap();
|
||||
}
|
||||
await finder.enterText(email);
|
||||
await finder.enterTextWithoutTapAction(email);
|
||||
|
||||
await $(RecipientSuggestionItemWidget)
|
||||
.which<RecipientSuggestionItemWidget>((widget) => widget.emailAddress.email?.contains(email) ?? false)
|
||||
@@ -40,7 +41,7 @@ class ComposerRobot extends CoreRobot {
|
||||
if (!isTextFieldFocused) {
|
||||
await finder.tap();
|
||||
}
|
||||
await finder.enterText(subject);
|
||||
await finder.enterTextWithoutTapAction(subject);
|
||||
}
|
||||
|
||||
Future<void> addContent(String content) async {
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'package:patrol/patrol.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
import '../base/core_robot.dart';
|
||||
import '../extensions/patrol_finder_extension.dart';
|
||||
|
||||
class LoginRobot extends CoreRobot {
|
||||
final appLocalizations = AppLocalizations();
|
||||
@@ -27,7 +28,7 @@ class LoginRobot extends CoreRobot {
|
||||
if (!isTextFieldFocused) {
|
||||
await finder.tap();
|
||||
}
|
||||
await finder.enterText(email);
|
||||
await finder.enterTextWithoutTapAction(email);
|
||||
}
|
||||
|
||||
Future<void> enterHostUrl(String url) async {
|
||||
@@ -38,7 +39,7 @@ class LoginRobot extends CoreRobot {
|
||||
if (!isTextFieldFocused) {
|
||||
await finder.tap();
|
||||
}
|
||||
await finder.enterText(url);
|
||||
await finder.enterTextWithoutTapAction(url);
|
||||
}
|
||||
|
||||
Future<void> tapOnNextButton() async {
|
||||
@@ -53,7 +54,7 @@ class LoginRobot extends CoreRobot {
|
||||
if (!isTextFieldFocused) {
|
||||
await finder.tap();
|
||||
}
|
||||
await finder.enterText(email);
|
||||
await finder.enterTextWithoutTapAction(email);
|
||||
}
|
||||
|
||||
Future<void> enterBasicAuthPassword(String password) async {
|
||||
@@ -64,7 +65,7 @@ class LoginRobot extends CoreRobot {
|
||||
if (!isTextFieldFocused) {
|
||||
await finder.tap();
|
||||
}
|
||||
await finder.enterText(password);
|
||||
await finder.enterTextWithoutTapAction(password);
|
||||
}
|
||||
|
||||
Future<void> loginBasicAuth() async {
|
||||
|
||||
@@ -6,6 +6,7 @@ import 'package:tmail_ui_user/features/thread/presentation/widgets/email_tile_bu
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
import '../base/core_robot.dart';
|
||||
import '../extensions/patrol_finder_extension.dart';
|
||||
|
||||
class SearchRobot extends CoreRobot {
|
||||
SearchRobot(super.$);
|
||||
@@ -18,7 +19,7 @@ class SearchRobot extends CoreRobot {
|
||||
if (!isTextFieldFocused) {
|
||||
await finder.tap();
|
||||
}
|
||||
await finder.enterText(queryString);
|
||||
await finder.enterTextWithoutTapAction(queryString);
|
||||
}
|
||||
|
||||
Future<void> scrollToEndListSearchFilter() async {
|
||||
@@ -47,7 +48,7 @@ class SearchRobot extends CoreRobot {
|
||||
if (!isTextFieldFocused) {
|
||||
await finder.tap();
|
||||
}
|
||||
await finder.enterText(keyword);
|
||||
await finder.enterTextWithoutTapAction(keyword);
|
||||
}
|
||||
|
||||
Future<void> tapOnShowAllResultsText() async {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,5 +1,6 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/composer_view.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
import '../base/base_test_scenario.dart';
|
||||
import '../robots/composer_robot.dart';
|
||||
@@ -35,6 +36,8 @@ class SendEmailScenario extends BaseTestScenario {
|
||||
Future<void> _expectComposerViewVisible() => expectViewVisible($(ComposerView));
|
||||
|
||||
Future<void> _expectSendEmailSuccessToast() async {
|
||||
expect($('Message has been sent successfully'), findsOneWidget);
|
||||
await expectViewVisible(
|
||||
$(find.text(AppLocalizations().message_has_been_sent_successfully)),
|
||||
);
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -1585,7 +1585,7 @@ packages:
|
||||
source: hosted
|
||||
version: "3.14.0"
|
||||
patrol_finders:
|
||||
dependency: transitive
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: patrol_finders
|
||||
sha256: "4c6d78e00362fd15d7c21cfac110e501d08ada7d77000bad139b0c3c2e27ccaf"
|
||||
@@ -1593,7 +1593,7 @@ packages:
|
||||
source: hosted
|
||||
version: "2.7.0"
|
||||
patrol_log:
|
||||
dependency: transitive
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: patrol_log
|
||||
sha256: "98b2701400c7a00b11533ab942bdeb44c3c714746e7cdb12e6cb93b6d06361da"
|
||||
|
||||
@@ -290,6 +290,10 @@ dev_dependencies:
|
||||
|
||||
patrol: 3.14.0
|
||||
|
||||
patrol_log: 0.3.0
|
||||
|
||||
patrol_finders: 2.7.0
|
||||
|
||||
plugin_platform_interface: 2.1.8
|
||||
|
||||
dependency_overrides:
|
||||
|
||||
Reference in New Issue
Block a user