From 4ae3184c5915aac9aa00889aa2153c8e84c14966 Mon Sep 17 00:00:00 2001 From: Matias Niemelä Date: Sun, 12 Jan 2014 15:49:52 -0500 Subject: feat($animate): use requestAnimationFrame instead of a timeout to issue a reflow Closes #4278 Closes #4225 --- src/ngMock/angular-mocks.js | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'src/ngMock/angular-mocks.js') diff --git a/src/ngMock/angular-mocks.js b/src/ngMock/angular-mocks.js index b53b4e02..803cedbd 100644 --- a/src/ngMock/angular-mocks.js +++ b/src/ngMock/angular-mocks.js @@ -756,6 +756,26 @@ angular.mock.TzDate = function (offset, timestamp) { angular.mock.TzDate.prototype = Date.prototype; /* jshint +W101 */ +angular.module('ngAnimate').config(['$provide', function($provide) { + var reflowQueue = []; + $provide.value('$$animateReflow', function(fn) { + reflowQueue.push(fn); + return angular.noop; + }); + $provide.decorator('$animate', function($delegate) { + $delegate.triggerReflow = function() { + if(reflowQueue.length === 0) { + throw new Error('No animation reflows present'); + } + angular.forEach(reflowQueue, function(fn) { + fn(); + }); + reflowQueue = []; + }; + return $delegate; + }); +}]); + angular.mock.animate = angular.module('mock.animate', ['ng']) .config(['$provide', function($provide) { @@ -1913,7 +1933,6 @@ angular.mock.clearDataCache = function() { }; - if(window.jasmine || window.mocha) { var currentSpec = null, -- cgit v1.2.3