Visual diffing in CI for user interfaces
Allow examples to have their own async timeout.
Fixes a bug where <img>
tags with crossorigin
attributes would cause spurious diffs.
srcset
attributes.This version fixes spurious diffs caused by images using the srcset
attribute.
With this version, we're using geckodriver to control Firefox. This means that you need to run Firefox v50 or newer. The main rationale for making the switch is that we now can screenshot only the rendered component. Previously, we've been screenshotting the entire page, then cropping to only include the component. Pre-cropped screenshots bring a significant performance improvement.
In version 3, we've moved happo over to be a tool purely written in JavaScript. Previously, the main happo execution was handled by Ruby. We believe that this will make it easier for JavaScript developers to adopt happo, because instead of having to install as a Ruby gem, it's as simple as
npm install happo
Along the conversion process, we've made a few smaller adjustments. We've done our best not to completely change the structure of the tool however, so commands should mostly be the same. There are some differences however:
happo
without any argument, we won't default to run
. You have to specify that specifically: happo run
.happo upload_diffs
is now happo upload
to better reflect the fact that we're not only uploading the diffs. Also, snake_case doesn't rhyme with us anymore and we've added happo upload-test
to help you test uploading and diagnose issues.happo clean
. Use rm -rf <pathToSnapshotsFolder>
instead.happo run
has been made more compact.Performance has been a focus throughout the transition. On our own projects, we've seen happo run a little bit faster, but it's probably not that significant. We have some exciting performance improvements coming up however, so stay tuned!
Changes: