I just spent way to much time on this problem, and it turned out to be a wayward .done() attached to a promise that was getting passed downstream. Because done() returns nothing the next handler in the chain was resolving immediately, instead of waiting for the chain done() was attached to.
Have you ever wanted to just check out someone's Jasmine unit test's without having to set up an environment? Or maybe you wanted a quick and easy space to write and run some of your own tests.