'use strict'; describe('Ionic List', function() { var compile, scope; beforeEach(module('ionic.ui.list')); beforeEach(inject(function($compile, $rootScope, $controller) { compile = $compile; scope = $rootScope; })); it('Should init', function() { var element = compile('' + '' + '' + '')(scope); expect(element.children().length).toBe(2); }); }); describe('Ionic Link Item Directive', function () { var $rootScope, element, listCtrl, options, scope; beforeEach(module('ionic.ui.list')); beforeEach(inject(function (_$compile_, _$rootScope_) { $rootScope = _$rootScope_; $rootScope.isEditing = false; var list = angular.element(''); list = _$compile_(list)($rootScope); listCtrl = list.controller('list'); $rootScope.buttons = []; element = angular.element('').appendTo(list); element = _$compile_(element)($rootScope); $rootScope.$digest(); scope = element.isolateScope(); })); it('Should show options when the list is not in edit mode', inject(function ($timeout) { scope.canSwipe = true; $rootScope.$digest(); $timeout.flush(); expect(scope.isEditing).toBe(false); expect(element.find('.item-options').length).toBe(1); })); it('Should hide options when the list is in edit mode', inject(function ($timeout) { scope.canSwipe = true; $rootScope.isEditing = true; $rootScope.$digest(); $timeout.flush(); expect(scope.isEditing).toBe(true); expect(element.find('.item-options').length).toBe(0); })); it('Should deregister watcher when scope destroyed', inject(function ($timeout) { $rootScope.isEditing = true; scope.$destroy(); $rootScope.$digest(); $timeout.flush(); expect(scope.isEditing).toBe(false); })); }); describe('Ionic Item Directive', function () { var $rootScope, element, listCtrl, options, scope; beforeEach(module('ionic.ui.list')); beforeEach(inject(function (_$compile_, _$rootScope_) { $rootScope = _$rootScope_; $rootScope.isEditing = false; var list = angular.element(''); list = _$compile_(list)($rootScope); listCtrl = list.controller('list'); $rootScope.buttons = []; element = angular.element('').appendTo(list); element = _$compile_(element)($rootScope); $rootScope.$digest(); scope = element.isolateScope(); })); it('Should show options when the list is not in edit mode', inject(function ($timeout) { scope.canSwipe = true; $rootScope.$digest(); $timeout.flush(); expect(scope.isEditing).toBe(false); expect(element.find('.item-options').length).toBe(1); })); it('Should hide options when the list is in edit mode', inject(function ($timeout) { scope.canSwipe = true; $rootScope.isEditing = true; $rootScope.$digest(); $timeout.flush(); expect(scope.isEditing).toBe(true); expect(element.find('.item-options').length).toBe(0); })); it('Should deregister watcher when scope destroyed', inject(function ($timeout) { $rootScope.isEditing = true; scope.$destroy(); $rootScope.$digest(); $timeout.flush(); expect(scope.isEditing).toBe(false); })); });