TF-3493 Override enterText of Patrol Finder

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-02-21 03:37:39 +07:00
committed by Dat H. Pham
parent abdcb614ce
commit 83ec6016af
9 changed files with 97 additions and 15 deletions
@@ -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();
}
}
}