patrol
patrol copied to clipboard
Wait for `PatrolFinder` matcher to be visible while using `at()`
Steps to reproduce
- Clone bug/at_reproduce_example
- Go to
packages/patrol/example - Run
patrol test -t integration_test/example_test.dart
Actual results
Test is failed right after await $(ListView).$(ListTile).at(1).tap(); is invoked.
Logs
Logs
java.lang.AssertionError: Dart test failed: example_test aye
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞═════════════════
The following IndexError was thrown running a test:
RangeError (index): Index out of range: index should be less than
1: 1
When the exception was thrown, this was the stack:
#0 Iterable.elementAt (dart:core/iterable.dart:807:5)
#1 _IndexFinderMixin.filter (package:flutter_test/src/finders.dart:1103:28)
#3 _HitTestableWidgetFinder.filter (package:flutter_test/src/finders.dart:1143:37)
#5 Iterable.isEmpty (dart:core/iterable.dart:540:33)
#6 PatrolTester.waitUntilVisible.<anonymous closure> (package:patrol_finders/src/custom_finders/patrol_tester.dart:401:43)
#9 TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:71:41)
#10 PatrolTester.waitUntilVisible (package:patrol_finders/src/custom_finders/patrol_tester.dart:397:27)
#11 PatrolTester.tap.<anonymous closure> (package:patrol_finders/src/custom_finders/patrol_tester.dart:249:36)
#14 TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:71:41)
#15 PatrolTester.tap (package:patrol_finders/src/custom_finders/patrol_tester.dart:248:27)
#16 PatrolFinder.tap (package:patrol_finders/src/custom_finders/patrol_finder.dart:207:18)
#17 main.<anonymous closure> (file:///Users/fylyppo/Documents/GitHub/patrol/packages/patrol/example/integration_test/example_test.dart:12:43)
<asynchronous suspension>
#18 patrolTest.<anonymous closure> (package:patrol/src/common.dart:110:7)
<asynchronous suspension>
#19 testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.dart:168:15)
<asynchronous suspension>
#20 TestWidgetsFlutterBinding._runTestBody (package:flutter_test/src/binding.dart:1013:5)
<asynchronous suspension>
#21 TestWidgetsFlutterBinding._createTestCompletionHandler.<anonymous closure> (package:flutter_test/src/binding.dart:804:12)
<asynchronous suspension>
(elided 6 frames from dart:async and dart:async-patch)
The test description was:
aye
═════════════════════════════════════════════════════════════════
at pl.leancode.patrol.PatrolJUnitRunner.runDartTest(PatrolJUnitRunner.java:135)
at pl.leancode.patrol.example.MainActivityTest.runDartTest(MainActivityTest.java:29)
Patrol version
from path
Patrol Doctor output
Patrol Doctor output
Patrol CLI version: 2.3.1+1
Program adb found in /opt/homebrew/bin/adb
Env var $ANDROID_HOME is not set
Program xcodebuild found in /usr/bin/xcodebuild
Program ideviceinstaller not found (install with `brew install ideviceinstaller`)
Flutter Doctor output
Flutter Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.16.0, on macOS 14.0 23A344 darwin-arm64, locale pl-PL)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 14.0)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.3)
[✓] VS Code (version 1.81.1)
[✓] Connected device (4 available)
[✓] Network resources
• No issues found!