diff options
| author | Misko Hevery | 2013-05-02 10:47:30 -0400 |
|---|---|---|
| committer | Misko Hevery | 2013-05-02 15:22:16 -0400 |
| commit | fd21c7502f0a25364a810c26ebeecb678e5783c5 (patch) | |
| tree | 27137cbebe756dbda887690e6fd0f779b443e8e1 /test | |
| parent | 80341cb9badd952fdc80094df4123629313b4cc4 (diff) | |
| download | angular.js-fd21c7502f0a25364a810c26ebeecb678e5783c5.tar.bz2 | |
fix(ngAnamite): eval ng-animate expression on each animation
Diffstat (limited to 'test')
| -rw-r--r-- | test/ng/animatorSpec.js | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/test/ng/animatorSpec.js b/test/ng/animatorSpec.js index 1b393e91..daab9721 100644 --- a/test/ng/animatorSpec.js +++ b/test/ng/animatorSpec.js @@ -336,10 +336,29 @@ describe("$animator", function() { })); }); - it("should throw an error when an invalid ng-animate syntax is provided", inject(function($compile, $rootScope) { + describe('anmation evaluation', function () { + it('should re-evaluate the animation expression on each animation', inject(function($animator, $rootScope) { + var parent = jqLite('<div><span></span></div>'); + var element = parent.find('span'); + + $rootScope.animationFn = function () { throw new Error('too early'); }; + var animate = $animator($rootScope, { ngAnimate: 'animationFn()' }); + var log = ''; + + $rootScope.animationFn = function () { log = 'abc' }; + animate.enter(element, parent); + expect(log).toEqual('abc'); + + $rootScope.animationFn = function () { log = 'xyz' }; + animate.enter(element, parent); + expect(log).toEqual('xyz'); + })); + }); + + it("should throw an error when an invalid ng-animate syntax is provided", inject(function($animator, $rootScope) { expect(function() { - element = $compile('<div ng-repeat="i in is" ng-animate=":"></div>')($rootScope); - $rootScope.$digest(); + var animate = $animator($rootScope, { ngAnimate: ':' }); + animate.enter(); }).toThrow("Syntax Error: Token ':' not a primary expression at column 1 of the expression [:] starting at [:]."); })); }); |
