fix(refresher): finish animating before changing icon, hide when not in use

This commit is contained in:
Perry Govier
2014-08-07 17:54:30 -05:00
parent 8cf540e54c
commit c336e8ede8
5 changed files with 52 additions and 9 deletions

View File

@@ -354,10 +354,12 @@ describe('$ionicScroll Controller', function() {
setup({
el: angular.element('<div><div class="scroll-refresher"></div></div>')[0]
});
spyOn(ctrl.scrollView, 'activatePullToRefresh').andCallFake(function(height, start, refreshing, done) {
spyOn(ctrl.scrollView, 'activatePullToRefresh').andCallFake(function(height, start, refreshing, done, show, hide) {
startCb = start;
refreshingCb = refreshing;
doneCb = done;
showCb = show;
hideCb = hide;
});
ctrl._setRefresher(scope, ctrl.element);
@@ -378,15 +380,26 @@ describe('$ionicScroll Controller', function() {
expect(scope.$onPulling).toHaveBeenCalled();
refreshingCb();
expect(refresher.classList.contains('active')).toBe(false);
expect(refresher.classList.contains('active')).toBe(true);
expect(refresher.classList.contains('refreshing')).toBe(false);
expect(scope.$onRefresh).not.toHaveBeenCalled();
doneCb();
expect(refresher.classList.contains('active')).toBe(false);
expect(refresher.classList.contains('active')).toBe(true);
expect(refresher.classList.contains('refreshing')).toBe(true);
expect(scope.$onRefresh).toHaveBeenCalled();
timeout.flush();
expect(refresher.classList.contains('active')).toBe(false);
expect(refresher.classList.contains('refreshing')).toBe(false);
expect(refresher.classList.contains('invisible')).toBe(true);
showCb();
expect(refresher.classList.contains('invisible')).toBe(false);
hideCb();
expect(refresher.classList.contains('invisible')).toBe(true);
});
});