Add wait for text to be absent

This commit is contained in:
Sarah Jamie Lewis 2023-02-08 14:59:22 -08:00
parent f20a14f3d8
commit bc846ee4df
2 changed files with 20 additions and 0 deletions

View File

@ -29,6 +29,7 @@ class FlutterTestConfiguration extends TestConfiguration {
whenPauseStep(),
whenFillFieldStep(),
thenExpectWidgetToBePresent(),
thenExpectWidgetToBeAbsent(),
restartAppStep(),
siblingContainsTextStep(),
tapTextWithinWidgetStep(),

View File

@ -29,3 +29,22 @@ StepDefinitionGeneric thenExpectWidgetToBePresent() {
configuration: StepDefinitionConfiguration()..timeout = const Duration(days: 1),
);
}
StepDefinitionGeneric thenExpectWidgetToBeAbsent() {
return given2<String, int, FlutterWorld>(
RegExp(r'I expect the (?:button|element|label|icon|field|text|widget|dialog|popup) {string} to be absent within {int} second(s)$'),
(key, seconds, context) async {
await context.world.appDriver.waitUntil(
() async {
await context.world.appDriver.waitForAppToSettle();
return context.world.appDriver.isAbsent(
context.world.appDriver.findBy(key, FindType.key),
);
},
timeout: Duration(seconds: seconds),
);
},
configuration: StepDefinitionConfiguration()..timeout = const Duration(days: 1),
);
}