Closed sv-ohorvath closed 1 year ago
Probably another case, in Fenix: SettingsSearchTest. editCustomSearchEngineTest
More and more tests require scrolling compose lists as the Compose migration is advancing on Fenix and Focus. So I'm marking this as S1 to get some attention.
Moved to bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=1802638
Change performed by the Move to Bugzilla add-on.
Steps to reproduce
Note:This is for documenting my findings in testing Compose lazy lists. Not manually reproducible, this is affecting UI tests only (as far as I know), but needs an engineer's attention
While trying to refactor englishSystemLocaleTest() to test with Compose test rule, I hit this error trying to scroll the language list:
While investigating I've tried a solution found here https://dmytroshuba.com/blog/jetpack-compose-ui-testing/#h-lateinit-property-remeasurement-has-not-been-initialized-in-lazylist* to replace scrollToItem(index) with animateScrollToItem(index) which should work the same way. The test passed now until I hit another crash which didn't seem so straightforward to fix:
java.lang.IllegalStateException: measure() may not be called multiple times on the same Measurable. Current state InMeasureBlock. Parent state Measuring.
Test log: https://console.firebase.google.com/u/1/project/moz-focus-android/testlab/histories/bh.2189b040bbce6d5a/matrices/5356848690213833442/executions/bs.c8e057ae5d7d1fc4/testcases/1/test-casesMeanwhile, the UI tests are now written using UiAutomator and not scrolling the list (it will scroll only partially, not all the way down), but it would be nice to have a working scrollable language list in case we need to expand our testing. Also good to know in case other lists are refactored to Compose LazyList.
Device information