execute method
Future<void>
execute({
- required CancelToken cancelToken,
- required TestReport report,
- required TestController tester,
Executes the step. This will first look for the Testable
then attempt
to set the opacity on 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', '$hide)";
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 widgetFinder = finder.evaluate();
var found = false;
if (widgetFinder.isNotEmpty == true) {
final element = widgetFinder.first as StatefulElement;
final state = element.state;
if (state is TestableState) {
try {
await state.opacity(hide == true ? 0.0 : 1.0);
found = true;
} catch (e) {
found = false;
}
}
}
if (found != true) {
throw Exception(
'testableId: [$testableId] -- could not locate Testable with a functional [opacity] method.',
);
}
}