diff options
| -rw-r--r-- | src/ng/q.js | 2 | ||||
| -rw-r--r-- | test/ng/qSpec.js | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/ng/q.js b/src/ng/q.js index 074acd1d..b8e1166e 100644 --- a/src/ng/q.js +++ b/src/ng/q.js @@ -274,7 +274,7 @@ function qFactory(nextTick, exceptionHandler) { then: function(callback, errback) { var result = defer(); nextTick(function() { - result.resolve(errback(reason)); + result.resolve((errback || defaultErrback)(reason)); }); return result.promise; } diff --git a/test/ng/qSpec.js b/test/ng/qSpec.js index a230d1de..941b4f2e 100644 --- a/test/ng/qSpec.js +++ b/test/ng/qSpec.js @@ -480,6 +480,14 @@ describe('q', function() { syncResolve(deferred, rejectedPromise); expect(log).toEqual(['error(Error: not gonna happen)']); }); + + + it('should return a promise that forwards callbacks if the callbacks are missing', function() { + var rejectedPromise = q.reject('rejected'); + promise.then(success(), error()); + syncResolve(deferred, rejectedPromise.then()); + expect(log).toEqual(['error(rejected)']); + }); }); |
