it('should indicate that members are loading while waiting for results', function (done){ var deferredMembers = $q.defer(); var membersPromise = deferredMembers.promise; var assertMembersLoaded = function () { expect(membershipViewer.members).toEqual(['Alice', 'Bob']]); expect(membershipViewer.loadingMembers).toEqual(false); done(); }; membershipService.getMembers.and.returnValue(membersPromise); membershipViewer.showMembers('a-group-id'); expect(membershipViewer.loadingMembers).toEqual(true); membersPromise.then(assertMembersLoaded); deferredMembers.resolve(['Alice', 'Bob']); $scope.$apply(); });