The 'myPublicMethod' does not return any promise. Either return
'deffered.promise' or simplify it by returning just the "methodOne" with
Yay/Nay responses attached.

Regards,
Witold Szczerba
---
Sent from my mobile phone.
On Jul 25, 2014 3:57 PM, "chris nikitas" <[email protected]> wrote:

> 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.
>

-- 
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