Skip to content

Commit 67328a3

Browse files
author
Brandon Rajkowski
authored
Fixes sendNotification named import declaration (#841)
* removes duplicate webPush require statements * tests on named imports from package index file * fixes sendNotification named import declaration * tests on named imports from package index file
1 parent 12c9e6c commit 67328a3

5 files changed

+40
-39
lines changed

src/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,5 @@ module.exports = {
1717
setGCMAPIKey: webPush.setGCMAPIKey,
1818
setVapidDetails: webPush.setVapidDetails,
1919
generateRequestDetails: webPush.generateRequestDetails,
20-
sendNotification: webPush.sendNotification
20+
sendNotification: webPush.sendNotification.bind(webPush)
2121
};

test/test-generate-request-details.js

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
'use strict';
22

33
const assert = require('assert');
4-
const webPush = require('../src/index');
4+
const { generateRequestDetails } = require('../src/index');
55
const crypto = require('crypto');
66
const jws = require('jws');
77
const urlParse = require('url').parse;
88
const https = require('https');
99

1010
suite('Test Generate Request Details', function() {
1111
test('is defined', function() {
12-
assert(webPush.generateRequestDetails);
12+
assert(generateRequestDetails);
1313
});
1414

1515
const userCurve = crypto.createECDH('prime256v1');
@@ -241,7 +241,7 @@ suite('Test Generate Request Details', function() {
241241
}
242242

243243
assert.throws(function() {
244-
return webPush.generateRequestDetails(
244+
return generateRequestDetails(
245245
invalidRequest.requestOptions.subscription,
246246
invalidRequest.requestOptions.message,
247247
invalidRequest.requestOptions.extraOptions
@@ -260,7 +260,7 @@ suite('Test Generate Request Details', function() {
260260
'Urgency': 'normal'
261261
}
262262
};
263-
let details = webPush.generateRequestDetails(
263+
let details = generateRequestDetails(
264264
subscription,
265265
message,
266266
extraOptions
@@ -283,7 +283,7 @@ suite('Test Generate Request Details', function() {
283283
}
284284
};
285285

286-
const requestDetails = webPush.generateRequestDetails(subscription, null, extraOptions);
286+
const requestDetails = generateRequestDetails(subscription, null, extraOptions);
287287
const authHeader = requestDetails.headers.Authorization;
288288

289289
// Get the Encoded JWT Token from the Authorization Header
@@ -311,7 +311,7 @@ suite('Test Generate Request Details', function() {
311311
contentEncoding: 'aesgcm'
312312
};
313313

314-
const requestDetails = webPush.generateRequestDetails(subscription, null, extraOptions);
314+
const requestDetails = generateRequestDetails(subscription, null, extraOptions);
315315
const authHeader = requestDetails.headers.Authorization;
316316

317317
// Get the Encoded JWT Token from the Authorization Header
@@ -331,7 +331,7 @@ suite('Test Generate Request Details', function() {
331331
let extraOptions = {
332332
'proxy': 'proxy'
333333
};
334-
let details = webPush.generateRequestDetails(
334+
let details = generateRequestDetails(
335335
subscription,
336336
message,
337337
extraOptions
@@ -347,7 +347,7 @@ suite('Test Generate Request Details', function() {
347347
let extraOptions = {
348348
proxy: proxyOption
349349
};
350-
let details = webPush.generateRequestDetails(
350+
let details = generateRequestDetails(
351351
subscription,
352352
null,
353353
extraOptions
@@ -362,7 +362,7 @@ suite('Test Generate Request Details', function() {
362362
let extraOptions = {
363363
agent: new https.Agent({ keepAlive: true })
364364
};
365-
let details = webPush.generateRequestDetails(
365+
let details = generateRequestDetails(
366366
subscription,
367367
null,
368368
extraOptions

test/test-set-vapid-details.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
'use strict';
22

33
const assert = require('assert');
4-
const webPush = require('../src/index');
4+
const { setVapidDetails } = require('../src/index');
55

66
const VALID_SUBJECT_MAILTO = 'mailto: [email protected]';
77
const VALID_SUBJECT_URL = 'https://exampe.com/contact';
@@ -10,24 +10,24 @@ const VALID_PRIVATE_KEY = Buffer.alloc(32).toString('base64url');
1010

1111
suite('setVapidDetails()', function() {
1212
test('is defined', function() {
13-
assert(webPush.setVapidDetails);
13+
assert(setVapidDetails);
1414
});
1515

1616
test('Valid URL input', function() {
1717
assert.doesNotThrow(function() {
18-
webPush.setVapidDetails(VALID_SUBJECT_URL, VALID_PUBLIC_KEY, VALID_PRIVATE_KEY);
18+
setVapidDetails(VALID_SUBJECT_URL, VALID_PUBLIC_KEY, VALID_PRIVATE_KEY);
1919
});
2020
});
2121

2222
test('Valid mailto: input', function() {
2323
assert.doesNotThrow(function() {
24-
webPush.setVapidDetails(VALID_SUBJECT_MAILTO, VALID_PUBLIC_KEY, VALID_PRIVATE_KEY);
24+
setVapidDetails(VALID_SUBJECT_MAILTO, VALID_PUBLIC_KEY, VALID_PRIVATE_KEY);
2525
});
2626
});
2727

2828
test('reset Vapid Details with null', function() {
2929
assert.doesNotThrow(function() {
30-
webPush.setVapidDetails(null);
30+
setVapidDetails(null);
3131
});
3232
});
3333

@@ -107,7 +107,7 @@ suite('setVapidDetails()', function() {
107107
test('Invalid input should throw an error', function() {
108108
invalidInputs.forEach(function(invalidInput, index) {
109109
assert.throws(function() {
110-
webPush.setVapidDetails(
110+
setVapidDetails(
111111
invalidInput.subject,
112112
invalidInput.publicKey,
113113
invalidInput.privateKey

test/testSendNotification.js

+17-16
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,16 @@ const mocha = require('mocha');
1212
const WebPushConstants = require('../src/web-push-constants.js');
1313

1414
suite('sendNotification', function() {
15+
let sendNotification;
16+
let setGCMAPIKey;
17+
let setVapidDetails;
18+
19+
mocha.beforeEach(function () {
20+
({ sendNotification, setGCMAPIKey, setVapidDetails } = require('../src/index'));
21+
});
22+
1523
test('is defined', function() {
16-
const webPush = require('../src/index');
17-
assert(webPush.sendNotification);
24+
assert(sendNotification);
1825
});
1926

2027
let server;
@@ -364,8 +371,7 @@ suite('sendNotification', function() {
364371
validRequest.requestOptions.extraOptions = validRequest.requestOptions.extraOptions || {};
365372
validRequest.requestOptions.extraOptions.contentEncoding = WebPushConstants.supportedContentEncodings.AES_GCM;
366373

367-
const webPush = require('../src/index');
368-
return webPush.sendNotification(
374+
return sendNotification(
369375
validRequest.requestOptions.subscription,
370376
validRequest.requestOptions.message,
371377
validRequest.requestOptions.extraOptions
@@ -392,8 +398,7 @@ suite('sendNotification', function() {
392398
validRequest.requestOptions.extraOptions = validRequest.requestOptions.extraOptions || {};
393399
validRequest.requestOptions.extraOptions.contentEncoding = WebPushConstants.supportedContentEncodings.AES_128_GCM;
394400

395-
const webPush = require('../src/index');
396-
return webPush.sendNotification(
401+
return sendNotification(
397402
validRequest.requestOptions.subscription,
398403
validRequest.requestOptions.message,
399404
validRequest.requestOptions.extraOptions
@@ -582,19 +587,18 @@ suite('sendNotification', function() {
582587
validGCMRequest.globalOptions.gcmAPIKey = 'my_gcm_key';
583588
}
584589

585-
const webPush = require('../src/index');
586590
if (validGCMRequest.globalOptions.gcmAPIKey) {
587-
webPush.setGCMAPIKey(validGCMRequest.globalOptions.gcmAPIKey);
591+
setGCMAPIKey(validGCMRequest.globalOptions.gcmAPIKey);
588592
}
589593
if (validGCMRequest.globalOptions.vapidDetails) {
590-
webPush.setVapidDetails(
594+
setVapidDetails(
591595
validGCMRequest.globalOptions.vapidDetails.subject,
592596
validGCMRequest.globalOptions.vapidDetails.publicKey,
593597
validGCMRequest.globalOptions.vapidDetails.privateKey
594598
);
595599
}
596600

597-
return webPush.sendNotification(
601+
return sendNotification(
598602
validGCMRequest.requestOptions.subscription,
599603
validGCMRequest.requestOptions.message,
600604
validGCMRequest.requestOptions.extraOptions
@@ -799,8 +803,7 @@ suite('sendNotification', function() {
799803
invalidRequest.requestOptions.extraOptions = invalidRequest.requestOptions.extraOptions || {};
800804
invalidRequest.requestOptions.extraOptions.contentEncoding = WebPushConstants.supportedContentEncodings.AES_GCM;
801805

802-
const webPush = require('../src/index');
803-
return webPush.sendNotification(
806+
return sendNotification(
804807
invalidRequest.requestOptions.subscription,
805808
invalidRequest.requestOptions.message,
806809
invalidRequest.requestOptions.extraOptions
@@ -825,8 +828,7 @@ suite('sendNotification', function() {
825828
invalidRequest.requestOptions.extraOptions = invalidRequest.requestOptions.extraOptions || {};
826829
invalidRequest.requestOptions.extraOptions.contentEncoding = WebPushConstants.supportedContentEncodings.AES_128_GCM;
827830

828-
const webPush = require('../src/index');
829-
return webPush.sendNotification(
831+
return sendNotification(
830832
invalidRequest.requestOptions.subscription,
831833
invalidRequest.requestOptions.message,
832834
invalidRequest.requestOptions.extraOptions
@@ -843,8 +845,7 @@ suite('sendNotification', function() {
843845
const currentServerPort = serverPort;
844846
return closeServer()
845847
.then(function() {
846-
const webPush = require('../src/index');
847-
return webPush.sendNotification({
848+
return sendNotification({
848849
endpoint: 'https://127.0.0.1:' + currentServerPort
849850
})
850851
.then(function() {

test/testSetGCMAPIKey.js

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,40 @@
11
'use strict';
22

33
const assert = require('assert');
4-
const webPush = require('../src/index');
4+
const { setGCMAPIKey } = require('../src/index');
55

66
suite('setGCMAPIKey', function() {
77
test('is defined', function() {
8-
assert(webPush.setGCMAPIKey);
8+
assert(setGCMAPIKey);
99
});
1010

1111
test('non-empty string', function() {
1212
assert.doesNotThrow(function() {
13-
webPush.setGCMAPIKey('AIzaSyAwmdX6KKd4hPfIcGU2SOfj9vuRDW6u-wo');
13+
setGCMAPIKey('AIzaSyAwmdX6KKd4hPfIcGU2SOfj9vuRDW6u-wo');
1414
});
1515
});
1616

1717
test('reset GCM API Key with null', function() {
1818
assert.doesNotThrow(function() {
19-
webPush.setGCMAPIKey(null);
19+
setGCMAPIKey(null);
2020
});
2121
});
2222

2323
test('empty string', function() {
2424
assert.throws(function() {
25-
webPush.setGCMAPIKey('');
25+
setGCMAPIKey('');
2626
}, Error);
2727
});
2828

2929
test('non string', function() {
3030
assert.throws(function() {
31-
webPush.setGCMAPIKey(42);
31+
setGCMAPIKey(42);
3232
}, Error);
3333
});
3434

3535
test('undefined value', function() {
3636
assert.throws(function() {
37-
webPush.setGCMAPIKey();
37+
setGCMAPIKey();
3838
}, Error);
3939
});
4040
});

0 commit comments

Comments
 (0)