From acce041f5e664f5e75bb3cf38368d05d8a573f62 Mon Sep 17 00:00:00 2001 From: Marco Date: Thu, 30 Nov 2017 12:23:44 +0000 Subject: [PATCH] Accept any 20* response status as successful. Fixes #299 (#300) --- src/web-push-lib.js | 2 +- test/testSendNotification.js | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/web-push-lib.js b/src/web-push-lib.js index d19c5adc..ad2b67c0 100644 --- a/src/web-push-lib.js +++ b/src/web-push-lib.js @@ -271,7 +271,7 @@ WebPushLib.prototype.sendNotification = }); pushResponse.on('end', function() { - if (pushResponse.statusCode !== 201) { + if (pushResponse.statusCode < 200 || pushResponse.statusCode > 299) { reject(new WebPushError('Received unexpected response code', pushResponse.statusCode, pushResponse.headers, responseText, requestDetails.endpoint)); } else { diff --git a/test/testSendNotification.js b/test/testSendNotification.js index b940db56..d037ae44 100644 --- a/test/testSendNotification.js +++ b/test/testSendNotification.js @@ -305,6 +305,24 @@ suite('sendNotification', function() { } } } + }, { + testTitle: 'server returns 201', + requestOptions: { + subscription: { + keys: VALID_KEYS + }, + message: 'hello' + }, + serverFlags: ['statusCode=201'] + }, { + testTitle: 'server returns 202', + requestOptions: { + subscription: { + keys: VALID_KEYS + }, + message: 'hello' + }, + serverFlags: ['statusCode=202'] } ]; @@ -318,6 +336,11 @@ suite('sendNotification', function() { 'https://127.0.0.1:' + serverPort; } + if (validRequest.serverFlags) { + validRequest.requestOptions.subscription.endpoint += '?' + + validRequest.serverFlags.join('&'); + } + const webPush = require('../src/index'); return webPush.sendNotification( validRequest.requestOptions.subscription,