This way we reproduce the user experience in the tests, and we can make sure modal dialogs open when we expect it.
This way we can use it for any model.
We get rid of database cleaner, and JavaScript tests are faster because between tests we now rollback transactions instead of truncating the database.