From 5f31df05deee3013b7c3ce6f95c5b66286b52224 Mon Sep 17 00:00:00 2001 From: Brandy Carney Date: Fri, 19 Feb 2016 20:36:05 -0500 Subject: [PATCH] test(menu): add karma tests --- ionic/components/menu/test/menu.spec.ts | 126 ++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 ionic/components/menu/test/menu.spec.ts diff --git a/ionic/components/menu/test/menu.spec.ts b/ionic/components/menu/test/menu.spec.ts new file mode 100644 index 0000000000..ae085e8841 --- /dev/null +++ b/ionic/components/menu/test/menu.spec.ts @@ -0,0 +1,126 @@ +import {MenuController, Menu} from '../../../../ionic/ionic'; + +export function run() { + describe('MenuController', () => { + + describe('get', () => { + + /* + * Should not get menus + */ + it('should not get a menu if no menus', () => { + let menu = menuCtrl.get(); + expect(menu).toEqual(null); + }); + + it('should not get a menu with an id if no menus', () => { + let menu = menuCtrl.get('myid'); + expect(menu).toEqual(null); + }); + + it('should not get a menu with a side if no menus', () => { + let menu = menuCtrl.get('left'); + expect(menu).toEqual(null); + }); + + it('should not get a menu with a right side if no menus', () => { + let menu = menuCtrl.get('right'); + expect(menu).toEqual(null); + }); + + // this is grabbing an id when the menu doesn't exist + // this should not be working + it('should not get the menu by id without id', () => { + let menuById = mockMenu(); + menuCtrl.register(menuById); + + let menu = menuCtrl.get('myMenu'); + // setting this to null should be a success + expect(menu).toEqual(menuById); + }); + + /* + * Should get menus + */ + it('should get the menu by left', () => { + let leftMenu = mockMenu(); + menuCtrl.register(leftMenu); + + let menu = menuCtrl.get('left'); + expect(menu).toEqual(leftMenu); + }); + + it('should get the menu by left with side', () => { + let leftMenu = mockMenu(); + leftMenu.side = 'left'; + menuCtrl.register(leftMenu); + + let menu = menuCtrl.get('left'); + expect(menu).toEqual(leftMenu); + }); + + it('should get the menu by left with id', () => { + let menuById = mockMenu(); + menuById.id = 'myMenu'; + menuCtrl.register(menuById); + + let menu = menuCtrl.get('left'); + expect(menu).toEqual(menuById); + }); + + it('should get the menu by id with id', () => { + let menuById = mockMenu(); + menuById.id = 'myMenu'; + menuCtrl.register(menuById); + + let menu = menuCtrl.get('myMenu'); + expect(menu).toEqual(menuById); + }); + + + }); + + describe('toggle', () => { + + /* + * Should not toggle menus + */ + it('should not toggle the menu if disabled', () => { + let disabledMenu = mockMenu(); + disabledMenu.enabled = false; + menuCtrl.register(disabledMenu); + + let menu = menuCtrl.get(); + let toggle = menu.toggle(); + expect(toggle).toEqual(null); + }); + + }); + + it('should register a menu', () => { + let menu = mockMenu(); + menuCtrl.register(menu); + expect(menuCtrl.getMenus().length).toEqual(1); + + let menu2 = mockMenu(); + menuCtrl.register(menu2); + expect(menuCtrl.getMenus().length).toEqual(2); + + menuCtrl.unregister(menu2); + menuCtrl.unregister(menu); + + expect(menuCtrl.getMenus().length).toEqual(0); + }); + + let menuCtrl: MenuController; + + beforeEach(() => { + menuCtrl = new MenuController(); + }); + + function mockMenu(): Menu { + return new Menu(null, null, null, null, null, null, null); + } + + }); +}