diff --git a/js/ext/angular/test/directive/ionicTabBar.unit.js b/js/ext/angular/test/directive/ionicTabBar.unit.js new file mode 100644 index 0000000000..96766c0318 --- /dev/null +++ b/js/ext/angular/test/directive/ionicTabBar.unit.js @@ -0,0 +1,94 @@ +describe('Tab Bar Controller', function() { + var compile, element, scope, ctrl; + + beforeEach(module('ionic.ui.tabbar')); + + beforeEach(inject(function($compile, $rootScope, $controller) { + compile = $compile; + scope = $rootScope; + ctrl = $controller('TabBarCtrl', { $scope: scope, $element: null }); + })); + + it('Select item in controller works', function() { + ctrl.selectTabAtIndex(1); + expect(ctrl.getSelectedTabIndex()).toEqual(1); + }); +}); + +describe('Tab Bar directive', function() { + var compile, element, scope; + + beforeEach(module('ionic.ui.tabbar')); + + beforeEach(inject(function($compile, $rootScope) { + compile = $compile; + scope = $rootScope; + })); + + it('Has section wrapper class', function() { + element = compile('')(scope); + expect(element.hasClass('view-wrapper')).toBe(true); + }); +}); + +describe('Tabs directive', function() { + var compile, element, scope; + + beforeEach(module('ionic.ui.tabbar')); + + beforeEach(inject(function($compile, $rootScope) { + compile = $compile; + scope = $rootScope; + })); + + it('Has tab class', function() { + element = compile('')(scope); + scope.$digest(); + console.log(element); + expect(element.find('.bar').hasClass('bar-tabs')).toBe(true); + }); + + it('Has tab children', function() { + scope.tabs = [ + { text: 'Home', icon: 'icon-home' }, + { text: 'Fun', icon: 'icon-fun' }, + { text: 'Beer', icon: 'icon-beer' }, + ]; + element = compile('')(scope); + scope.$digest(); + expect(element.find('li').length).toBe(3); + }); +}); + +describe('Tab Item directive', function() { + var compile, element, scope, ctrl; + + beforeEach(module('ionic.ui.tabbar')); + + beforeEach(inject(function($compile, $rootScope, $controller) { + compile = $compile; + scope = $rootScope; + //ctrl = $controller('TabBarCtrl', { $scope: scope, $element: null }); + + element = compile('' + + '' + + '')(scope); + scope.$digest(); + })); + + it('Default text works', function() { + expect(element.find('a').first().text()).toEqual('Item'); + }); + + it('Default icon works', function() { + expect(element.find('i').hasClass('icon-default')).toEqual(true); + }); + + it('Click sets correct tab index', function() { + var a = element.find('a:eq(2)'); + //spyOn(a, 'click'); + spyOn(scope, 'selectTab'); + a.click(); + expect(scope.selectTab).toHaveBeenCalled(); + }); +})