Skip to content

Commit 61dddeb

Browse files
abdulhannanalimarco-c
authored andcommitted
Add Test For Port Number passed to Audience in Vapid (#286)
* test for port in Audience This is a test for #267 and resolves #270 * fix Audience port test
1 parent 5fd3acc commit 61dddeb

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

test/test-generate-request-details.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const assert = require('assert');
44
const urlBase64 = require('urlsafe-base64');
55
const webPush = require('../src/index');
66
const crypto = require('crypto');
7+
const jws = require('jws');
78

89
suite('Test Generate Request Details', function() {
910
test('is defined', function() {
@@ -243,4 +244,31 @@ suite('Test Generate Request Details', function() {
243244
assert.equal(details.headers.Topic, extraOptions.headers.Topic);
244245
assert.equal(details.headers.Urgency, extraOptions.headers.Urgency);
245246
});
247+
248+
test('Audience contains port', function() {
249+
const subscription = {
250+
endpoint: 'http://example.com:4242/life-universe-and-everything'
251+
};
252+
253+
const extraOptions = {
254+
vapidDetails: {
255+
subject: 'mailto:[email protected]',
256+
publicKey: vapidKeys.publicKey,
257+
privateKey: vapidKeys.privateKey
258+
}
259+
};
260+
261+
const requestDetails = webPush.generateRequestDetails(subscription, null, extraOptions);
262+
const authHeader = requestDetails.headers.Authorization;
263+
264+
// Get the Encoded JWT Token from the Authorization Header
265+
// and decoded it using `jws.decode`
266+
// to get the value of audience in jwt payload
267+
const jwtContents = authHeader.match(/WebPush\s(.*)/)[1];
268+
const decodedContents = jws.decode(jwtContents);
269+
const audience = decodedContents.payload.aud;
270+
271+
assert.ok(audience, 'Audience exists');
272+
assert.equal(audience, 'http://example.com:4242', 'Audience contains expected value with port');
273+
});
246274
});

0 commit comments

Comments
 (0)