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)']); +    });    });  | 
