diff --git a/js/angular/directive/slideBoxPager.js b/js/angular/directive/slideBoxPager.js index 8d4754a6ba..8534e8b8d5 100644 --- a/js/angular/directive/slideBoxPager.js +++ b/js/angular/directive/slideBoxPager.js @@ -74,9 +74,9 @@ function($parse) { function onPagerClicked(index) { clickFn(scope.$parent, { - $slideIndex: index, // DEPRECATED pass in `index` variable - index: index + index: index, + $slideIndex: index, }); } diff --git a/test/unit/angular/directive/slidePager.unit.js b/test/unit/angular/directive/slidePager.unit.js new file mode 100644 index 0000000000..372cf783e5 --- /dev/null +++ b/test/unit/angular/directive/slidePager.unit.js @@ -0,0 +1,68 @@ +describe(' directive', function() { + beforeEach(module('ionic')); + + it('should create pager elements', inject(function($compile, $rootScope, $timeout) { + var el = $compile('' + + 'A' + + 'B' + + 'C' + + '' + + '')($rootScope); + $rootScope.$apply(); + var pager = el.find('ion-slide-pager'); + + expect(pager.find('.slider-pager-page').length).toBe(2); + + $rootScope.$apply('showThird = true'); + expect(pager.find('.slider-pager-page').length).toBe(3); + + $rootScope.$apply('showThird = false'); + $timeout.flush(); + expect(pager.find('.slider-pager-page').length).toBe(2); + + })); + + it('should by default select on click', inject(function($compile, $rootScope, $timeout) { + var el = $compile('' + + 'A' + + 'B' + + 'C' + + '' + + '')($rootScope); + $rootScope.$apply(); + var slideBoxCtrl = el.controller('ionSlideBox'); + var pagers = el.find('.slider-pager-page'); + + expect(slideBoxCtrl.selected()).toBe(0); + pagers.eq(1).click(); + expect(slideBoxCtrl.selected()).toBe(1); + + pagers.eq(2).click(); + expect(slideBoxCtrl.selected()).toBe(2); + + })); + + it('should allow custom click action which overrides default', inject(function($compile, $rootScope, $timeout) { + $rootScope.click = jasmine.createSpy('pagerClick'); + var el = $compile('' + + 'A' + + 'B' + + 'C' + + '' + + '')($rootScope); + $rootScope.$apply(); + var slideBoxCtrl = el.controller('ionSlideBox'); + var pagers = el.find('.slider-pager-page'); + + expect(slideBoxCtrl.selected()).toBe(0); + pagers.eq(1).click(); + expect(slideBoxCtrl.selected()).toBe(0); + expect($rootScope.click).toHaveBeenCalledWith(1); + + pagers.eq(2).click(); + expect(slideBoxCtrl.selected()).toBe(0); + expect($rootScope.click).toHaveBeenCalledWith(2); + + })); + +});