Hi all,

I am trying to test nested promised in my application without any luck so 
far.

You can see my setup and code below:

app.factory('myService', '$q', function($q) {

var methodOne = function (param) {

    var deferred = $q.defer();

    thirdParty.callMethodOne(param, function (myAPIError, success) {
        if (_.isUndefined(success)) {
            deferred.reject(myAPIError);
        }
        else {
            deferred.resolve(success);
        }
    });

    return deferred.promise;

};

return {

    myPublicMethod: function(param) {
        var deferred = $q.defer();
        
        methodOne(param).then(
            function(success) {
                deferred.resolve('Yay');
            },
            function(myAPIError) {
                deferred.reject('Nay');
            }
        )
    }

};

});

Trying to test the above:

describe('Services', function () {
    var service, $scope;

    beforeEach(function () {
        angular.mock.module('services');
    });

    beforeEach(angular.mock.inject(function(_$rootScope_) {
            $scope = _$rootScope_.$new();
        }));

    describe('myService', function () {

        beforeEach(angular.mock.inject(function (myService) {
            service = myService;
        }));

        it('should be able to test my service', function() {
            var param = 'test';
            var promise = service.myPublicMethod(param);

            promise.then(function(success) {
                console.log('Yay');            
            },
            function(error) {
                console.log('Nay');
            }

            $scope.$apply();
        });

    });

});

Any idea what might I might be doing wrong? During my test it will never go 
into the then part (so nothing is printed to the console).

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to