aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/angular-mocks.js8
-rw-r--r--src/service/exceptionHandler.js12
-rw-r--r--test/angular-mocksSpec.js3
-rw-r--r--test/service/exceptionHandlerSpec.js25
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']);
+ });
});
- });
});