flackr / scroll-timeline

A polyfill of ScrollTimeline.
Apache License 2.0
951 stars 92 forks source link

Fix svg graphics element tests #227

Open johannesodland opened 8 months ago

johannesodland commented 8 months ago

Depends on #244

Adding another PR for discussion:

The svg-graphics-element tests are currently flaky, making the tests fail randomly when submitting PRs. This is due to three separate issues:

  1. We don't support svg elements subjects, as offsetTop/Left/Parent are not available for SVGElement
  2. Injecting 1s in the animation shorthand failed after removing auto duration
  3. WPT subtests might run before animations are polyfilled

The first two issues are easy to solve, but the third is more complicated.

The polyfill waits for animationstart before polyfilling animations. At this point the wpt test might have started already, causing the test to fail or time out.

It is possible to proxy the promise_test() function, so that it waits for the polyfill before running the test. However, the wpt test runner only allows one injected script. To make the test pass then we either have to:

It seems like several others polyfill projects have run into similar problems (https://github.com/web-platform-tests/wpt/issues/38227). I wish it was possible to inject multiple scripts into the wpt test runner, but that might not be feasible.