Skip to content

Conversation

@asklar
Copy link
Member

@asklar asklar commented Apr 23, 2020

Fixes #4037

A number of significant test changes:

  • Playground now has a treedump status textblock. When we load a page, we will poll every 200 ms, on a timer, to see if the page header has changed from the last time we got an OK. If it has, or if the tree dump is in an error state, then we will obtain a new treedump compare result from C#.
    Initial state:
    image

ERROR state:
image

OK state:
image

  • Created automated visual tests for RNTester. A few caveats:
    • These work in 1280x1024 which is the resolution I'm running in my RDP session - I'll update the masters based on what the PR produces since that runs at 1024x768.
    • These tests actually found a few bugs in RNTester: RNTester: Crash loading <Image> page #3738 for example.
    • FlatList is excluded for now because virtualization is messing master comparison (it's a little non-deterministic what's going to be available)
    • Pages that show up on the list off-screen are currently excluded. Normally we would call scrollIntoView, however this throws a not implemented exception. We'll have to deal with that later but this PR gives us a starting point.
    • Some pages like datetimepicker have text that is designed to change every time it runs (e.g. it shows today's date/time). To work around this I've introduced a meta-value in the masters JSON, "<ANYTHING>" which compares to true against any element.
    • I'm excluding comparison of vert/horz scrollbars
  • Improves run_wdio to do error reporting on the console:
    image
  • Renamed the playground appid to be a human readable string instead of the default guid
Microsoft Reviewers: Open in CodeFlow

"@types/node": "^10.14.8",
"@types/react": "16.9.0",
"@types/react-native": "^0.62.2",
"@wdio/appium-service": "5.12.1",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know this is still a draft, but this struck me as a bit unexpected. Why do we need to couple Playground to WinAppDriver, etc? Can we just load the RNTester bundle within E2ETest?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Build visual tree compare tests that iterate over RNTester pages

2 participants