waitUntilExists method
Future<PatrolFinder>
waitUntilExists(
- PatrolFinder finder, {
- Duration? timeout,
- bool enablePatrolLog = true,
inherited
Waits until this finder finds at least one widget.
Throws a WaitUntilVisibleTimeoutException if no widgets found.
Timeout is globally set by PatrolTesterConfig.visibleTimeout inside
PatrolTester.config. If you want to override this global setting, set
timeout.
Implementation
Future<PatrolFinder> waitUntilExists(
PatrolFinder finder, {
Duration? timeout,
bool enablePatrolLog = true,
}) {
return TestAsyncUtils.guard(
() => wrapWithPatrolLog<PatrolFinder>(
action: 'waitUntilExists',
finder: finder,
color: AnsiCodes.cyan,
enablePatrolLog: enablePatrolLog,
function: () async {
final duration = timeout ?? config.existsTimeout;
final end = tester.binding.clock.now().add(duration);
while (finder.evaluate().isEmpty) {
final now = tester.binding.clock.now();
if (now.isAfter(end)) {
throw WaitUntilExistsTimeoutException(
finder: finder,
duration: duration,
);
}
await tester.pump(const Duration(milliseconds: 100));
}
return finder;
},
),
);
}