diff options
| -rw-r--r-- | src/angular-mocks.js | 8 | ||||
| -rw-r--r-- | src/service/exceptionHandler.js | 12 | ||||
| -rw-r--r-- | test/angular-mocksSpec.js | 3 | ||||
| -rw-r--r-- | test/service/exceptionHandlerSpec.js | 25 |
4 files changed, 34 insertions, 14 deletions
diff --git a/src/angular-mocks.js b/src/angular-mocks.js index 516259b8..0645322b 100644 --- a/src/angular-mocks.js +++ b/src/angular-mocks.js @@ -249,8 +249,12 @@ angular.mock.$ExceptionHandlerProvider = function() { case 'log': var errors = []; handler = function(e) { - errors.push(e); - }; + if (arguments.length == 1) { + errors.push(e); + } else { + errors.push([].slice.call(arguments, 0)); + } + } handler.errors = errors; break; default: diff --git a/src/service/exceptionHandler.js b/src/service/exceptionHandler.js index 6d680b04..26ea5845 100644 --- a/src/service/exceptionHandler.js +++ b/src/service/exceptionHandler.js @@ -10,13 +10,17 @@ * The default implementation simply delegates to `$log.error` which logs it into * the browser console. * - * In unit tests, if `angular-mocks.js` is loaded, this service is overriden by + * In unit tests, if `angular-mocks.js` is loaded, this service is overridden by * {@link angular.module.ngMock.$exceptionHandler mock $exceptionHandler} + * + * @param {Error} exception Exception associated with the error. + * @param {string=} cause optional information about the context in which + * the error was thrown. */ -function $ExceptionHandlerProvider(){ +function $ExceptionHandlerProvider() { this.$get = ['$log', function($log){ - return function(e) { - $log.error(e); + return function(exception, cause) { + $log.error.apply($log, arguments); }; }]; } diff --git a/test/angular-mocksSpec.js b/test/angular-mocksSpec.js index 073d6cd1..2527ca48 100644 --- a/test/angular-mocksSpec.js +++ b/test/angular-mocksSpec.js @@ -307,6 +307,9 @@ describe('ngMock', function() { var $exceptionHandler = $exceptionHandlerProvider.$get(); $exceptionHandler('MyError'); expect($exceptionHandler.errors).toEqual(['MyError']); + + $exceptionHandler('MyError', 'comment'); + expect($exceptionHandler.errors[1]).toEqual(['MyError', 'comment']); })); diff --git a/test/service/exceptionHandlerSpec.js b/test/service/exceptionHandlerSpec.js index 2f3d0e66..4ab94679 100644 --- a/test/service/exceptionHandlerSpec.js +++ b/test/service/exceptionHandlerSpec.js @@ -1,15 +1,24 @@ 'use strict'; describe('$exceptionHandler', function() { + it('should log errors with single argument', function() { + module(function($provide){ + $provide.service('$exceptionHandler', $ExceptionHandlerProvider); + }); + inject(function($log, $exceptionHandler) { + $exceptionHandler('myError'); + expect($log.error.logs.shift()).toEqual(['myError']); + }); + }); - it('should log errors', function() { - module(function($provide){ - $provide.service('$exceptionHandler', $ExceptionHandlerProvider); - }); - inject(function($log, $exceptionHandler) { - $exceptionHandler('myError'); - expect($log.error.logs.shift()).toEqual(['myError']); + it('should log errors with multiple arguments', function() { + module(function($provide){ + $provide.service('$exceptionHandler', $ExceptionHandlerProvider); + }); + inject(function($log, $exceptionHandler) { + $exceptionHandler('myError', 'comment'); + expect($log.error.logs.shift()).toEqual(['myError', 'comment']); + }); }); - }); }); |
