From 1413328e6aec87338bf1fce002dfaf519d9ca1b5 Mon Sep 17 00:00:00 2001 From: Matias Niemelä Date: Wed, 15 Jan 2014 03:43:52 -0500 Subject: fix(ngMock): ensure ngAnimate isn't a required mock --- src/ngMock/angular-mocks.js | 48 +++++++++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 19 deletions(-) (limited to 'src/ngMock') diff --git a/src/ngMock/angular-mocks.js b/src/ngMock/angular-mocks.js index 803cedbd..c2c9d7a2 100644 --- a/src/ngMock/angular-mocks.js +++ b/src/ngMock/angular-mocks.js @@ -756,25 +756,35 @@ 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; - }); -}]); +// TODO(matias): remove this IMMEDIATELY once we can properly detect the +// presence of a registered module +var animateLoaded; +try { + angular.module('ngAnimate'); + animateLoaded = true; +} catch(e) {} + +if(animateLoaded) { + 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']) -- cgit v1.2.3