It would actually be really nice if there was an explanation of when it's neede and when it's not... all the "magic" tends to confuse new people (myself included).

From what I understand, "andThen()" adds another promise to the Ember run loop schedule... which would imply you only need it when you've got async-helper calls in your test above the assertions, right? The whole "sometimes we need andThen, sometimes we don't issue is a super-duper-noober-confuser IMHO.

I guess the rule is "you need it for integration tests, but not for unit tests... except where the unit tests involve run loop behaviour" ;-) ;-)