AdevintaSpain / Barista

:coffee: The one who serves a great Espresso
Other
1.7k stars 120 forks source link

`sleep` does not work when a `DialogFragment` is open and the test is running on Android 11+ #503

Open ajburley opened 1 year ago

ajburley commented 1 year ago

Library Version:

4.3.0

Describe the Bug:

When calling sleep while a DialogFragment is open, the test fails every time on Android 11+ with an error "Waited for the root of the view hierarchy to have window focus and not request layout for 10 seconds"

I believe this may be related to issue https://github.com/android/android-test/issues/751 In the code, sleep is calling isRoot to look for the root view, but this doesn't work properly if a DialogFragment is open.

Steps to reproduce the bug:

  1. Open a DialogFragment, for example I'm using a BottomSheetDialogFragment
  2. After it opens, call sleep
  3. See that the test fails

Expected Behavior:

I expected sleep to work as normal.

One option might be to be able to pass a view matcher to sleep, which could be of a view you know to exist. Or else just match any view using some generic matcher like withClassName(any()) or something.