diff options
Diffstat (limited to 'js/vendor/angular-ui/modules/directives/if/test/ifSpec.js')
-rw-r--r-- | js/vendor/angular-ui/modules/directives/if/test/ifSpec.js | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/js/vendor/angular-ui/modules/directives/if/test/ifSpec.js b/js/vendor/angular-ui/modules/directives/if/test/ifSpec.js new file mode 100644 index 000000000..8edfc108d --- /dev/null +++ b/js/vendor/angular-ui/modules/directives/if/test/ifSpec.js @@ -0,0 +1,57 @@ +describe('ui-if', function () { + var scope, $compile, elm; + + beforeEach(module('ui.directives')); + beforeEach(inject(function ($rootScope, _$compile_) { + scope = $rootScope.$new(); + $compile = _$compile_; + elm = $('<div>'); + })); + + function makeIf(expr) { + elm.append($compile('<div ui-if="' + expr + '"><div>Hi</div></div>')(scope)); + scope.$apply(); + } + + it('should immediately remove element if condition is false', function () { + makeIf('false'); + expect(elm.children().length).toBe(0); + }); + + it('should leave the element if condition is true', function () { + makeIf('true'); + expect(elm.children().length).toBe(1); + }); + + it('should create then remove the element if condition changes', function () { + scope.hello = true; + makeIf('hello'); + expect(elm.children().length).toBe(1); + scope.$apply('hello = false'); + expect(elm.children().length).toBe(0); + }); + + it('should create a new scope', function () { + scope.$apply('value = true'); + elm.append($compile( + '<div ui-if="value"><span ng-init="value=false"></span></div>' + )(scope)); + scope.$apply(); + expect(elm.children('div').length).toBe(1); + }); + + it('should play nice with other elements beside it', function () { + scope.values = [1, 2, 3, 4]; + elm.append($compile( + '<div ng-repeat="i in values"></div>' + + '<div ui-if="values.length==4"></div>' + + '<div ng-repeat="i in values"></div>' + )(scope)); + scope.$apply(); + expect(elm.children().length).toBe(9); + scope.$apply('values.splice(0,1)'); + expect(elm.children().length).toBe(6); + scope.$apply('values.push(1)'); + expect(elm.children().length).toBe(9); + }); +});
\ No newline at end of file |