We repeat these three assertions a lot around here. If you're willing to spend a bit more time on this PR, let's extract these into a helper function or even a [custom assertion](http://qunitjs.com/cookbook/#custom-assertions). Maybe `errorFor( "username", "missing" )`, which then checks the length, text and visibility.