diff options
Diffstat (limited to 'test/ngAnimate')
| -rw-r--r-- | test/ngAnimate/animateSpec.js | 39 |
1 files changed, 31 insertions, 8 deletions
diff --git a/test/ngAnimate/animateSpec.js b/test/ngAnimate/animateSpec.js index d626d60e..41115e42 100644 --- a/test/ngAnimate/animateSpec.js +++ b/test/ngAnimate/animateSpec.js @@ -2563,8 +2563,9 @@ describe("ngAnimate", function() { }); - it("should disable all child animations on structural animations until the post animation timeout has passed", function() { - var intercepted; + it("should disable all child animations on structural animations until the post animation" + + "timeout has passed as well as all structural animations", function() { + var intercepted, continueAnimation; module(function($animateProvider) { $animateProvider.register('.animated', function() { return { @@ -2578,7 +2579,10 @@ describe("ngAnimate", function() { function ani(type) { return function(element, className, done) { intercepted = type; - (done || className)(); + continueAnimation = function() { + continueAnimation = angular.noop; + (done || className)(); + } } } }); @@ -2595,26 +2599,45 @@ describe("ngAnimate", function() { var child2 = $compile('<div class="child2 animated">...</div>')($rootScope); var container = $compile('<div class="container">...</div>')($rootScope); - jqLite($document[0].body).append($rootElement); + var body = angular.element($document[0].body); + body.append($rootElement); $rootElement.append(container); element.append(child1); element.append(child2); - $animate.move(element, null, container); + $animate.enter(element, container); $rootScope.$digest(); - expect(intercepted).toBe('move'); + expect(intercepted).toBe('enter'); + continueAnimation(); $animate.addClass(child1, 'test'); expect(child1.hasClass('test')).toBe(true); - expect(intercepted).toBe('move'); + expect(element.children().length).toBe(2); + + expect(intercepted).toBe('enter'); $animate.leave(child1); $rootScope.$digest(); + expect(element.children().length).toBe(1); + + expect(intercepted).toBe('enter'); + + $animate.move(element, null, container); + $rootScope.$digest(); + expect(intercepted).toBe('move'); - //reflow has passed + //flush the enter reflow + $timeout.flush(); + + $animate.addClass(child2, 'testing'); + expect(intercepted).toBe('move'); + + continueAnimation(); + + //flush the move reflow $timeout.flush(); $animate.leave(child2); |
