Skip to content

Commit 5c5500b

Browse files
committed
1 parent ffc7128 commit 5c5500b

2 files changed

Lines changed: 14 additions & 1 deletion

File tree

spec/APNSNative.spec.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,19 @@ describe('APNSNative', () => {
558558
expect(result.response.error).toBe('Something wrong happend');
559559
});
560560

561+
it('properly parses status 0 transport failures', async () => {
562+
spyOn(log, 'error').and.callFake(() => {});
563+
const result = await APNSNative._handlePushFailure({
564+
device: 'abcd',
565+
status: 0,
566+
response: { reason: 'RequestTimeout' }
567+
});
568+
expect(result.transmitted).toBe(false);
569+
expect(result.device.deviceToken).toBe('abcd');
570+
expect(result.device.deviceType).toBe('ios');
571+
expect(result.response.error).toBe('RequestTimeout');
572+
});
573+
561574
it('properly parses errors again', async () => {
562575
spyOn(log, 'error').and.callFake(() => {});
563576
const result = await APNSNative._handlePushFailure({ device: 'abcd' });

src/APNSNative.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ export class APNSNative {
338338
if (failure.error) {
339339
log.error(LOG_PREFIX, 'APNS error transmitting to device %s with error %s', failure.device, failure.error);
340340
return APNSNative._createErrorPromise(failure.device, failure.error);
341-
} else if (failure.status && failure.response && failure.response.reason) {
341+
} else if (failure.status !== undefined && failure.response?.reason) {
342342
log.error(LOG_PREFIX, 'APNS error transmitting to device %s with status %s and reason %s', failure.device, failure.status, failure.response.reason);
343343
return APNSNative._createErrorPromise(failure.device, failure.response.reason);
344344
} else {

0 commit comments

Comments
 (0)