Files
workavia-mail-front/integration_test/extensions/patrol_tester_extension.dart
T
2025-02-23 22:40:30 -08:00

49 lines
1.2 KiB
Dart

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();
}
}
}