execute method
Future<void>
execute({
- required CancelToken cancelToken,
- required TestReport report,
- required TestController tester,
override
Attempts to locate the Testable widget identified by testableId and then will attempt to long press the widget on center point of the widget.
Implementation
@override
Future<void> execute({
required CancelToken cancelToken,
required TestReport report,
required TestController tester,
}) async {
final testableId = tester.resolveVariable(this.testableId);
assert(testableId?.isNotEmpty == true);
final name = "$id('$testableId')";
log(
name,
tester: tester,
);
final finder = await waitFor(
testableId,
cancelToken: cancelToken,
tester: tester,
timeout: timeout,
);
await sleep(
tester.delays.postFoundWidget,
cancelStream: cancelToken.stream,
tester: tester,
);
final evaluated = finder.evaluate();
if (evaluated.length > 1) {
var error =
'[ERROR]: found (${evaluated.length}) widgets; expected only one.';
var index = 0;
for (var w in evaluated) {
error += '\n ${++index}: ${w.widget.runtimeType} [${w.widget.key}]';
}
throw Exception(error);
}
await driver.longPress(finder);
}