diff --git a/spec/SNSPushAdapter.spec.js b/spec/SNSPushAdapter.spec.js index 50785af..f205e94 100644 --- a/spec/SNSPushAdapter.spec.js +++ b/spec/SNSPushAdapter.spec.js @@ -158,6 +158,24 @@ describe('SNSPushAdapter', () => { }); }); + it('errors exchanging device tokens for an Amazon Resource Number (ARN) because data is null', (done) => { + + // Mock out Amazon SNS token exchange + var snsSender = jasmine.createSpyObj('sns', ['createPlatformEndpoint']); + snsPushAdapter.sns = snsSender; + + snsSender.createPlatformEndpoint.and.callFake(function(object, callback) { + callback("error", null); + }); + + var promise = snsPushAdapter.exchangeTokenPromise(makeDevice("androidToken"), "GCM_ID"); + + promise.catch(function() { + expect(snsSender.createPlatformEndpoint).toHaveBeenCalled(); + done(); + }); + }); + it('errors exchanging device tokens for an Amazon Resource Number (ARN)', (done) => { // Mock out Amazon SNS token exchange diff --git a/src/SNSPushAdapter.js b/src/SNSPushAdapter.js index cc5fbf9..bdece24 100644 --- a/src/SNSPushAdapter.js +++ b/src/SNSPushAdapter.js @@ -173,7 +173,7 @@ SNSPushAdapter.prototype.exchangeTokenPromise = function (device, platformARN) { return new Parse.Promise((resolve, reject) => { this.getPlatformArn(device, platformARN, (err, data) => { - if (data.EndpointArn) { + if (data !== null && data.EndpointArn) { resolve({device: device, arn: data.EndpointArn}); } else