Usually, you'd put the async task as a function within `rootScope.$apply()` as it'll handle errors. However, as discussed before, this doesn't seem to work in tests (e.g. in [dashboardfactory](https://github.com/eHealthAfrica/LMIS-Chrome/blob/be19a2fb716415f0a5c736808de3298e1f8dc52f/test/spec/services/dashboardfactory.js#L46-L49)).

Is this the correct/recommended way to test promises, then?