Skip to content

Commit

Permalink
Add tests for private claims in the payload
Browse files Browse the repository at this point in the history
This change adds tests for private claims added to the payload during
sign and ensures that after verifying the payload contains the expected
claim.
  • Loading branch information
MitMaro committed Dec 2, 2018
1 parent 7eebbc7 commit 6b62011
Showing 1 changed file with 73 additions and 0 deletions.
73 changes: 73 additions & 0 deletions test/claim-private.tests.js
@@ -0,0 +1,73 @@
'use strict';

const expect = require('chai').expect;
const util = require('util');
const testUtils = require('./test-utils');

function signWithPayload(payload, callback) {
testUtils.signJWTHelper(payload, 'secret', {algorithm: 'none'}, callback);
}

describe('with a private claim', function() {
[
true,
false,
null,
-1,
0,
1,
-1.1,
1.1,
'',
'private claim',
'UTF8 - José',
[],
['foo'],
{},
{foo: 'bar'},
].forEach((privateClaim) => {
it(`should sign and verify with claim of ${util.inspect(privateClaim)}`, function (done) {
signWithPayload({privateClaim}, (e1, token) => {
testUtils.verifyJWTHelper(token, undefined, {}, (e2, decoded) => {
testUtils.asyncCheck(done, () => {
expect(e1).to.be.null;
expect(e2).to.be.null;
expect(decoded).to.have.property('privateClaim').to.deep.equal(privateClaim);
});
})
});
});
});

// these values JSON.stringify to null
[
-Infinity,
Infinity,
NaN,
].forEach((privateClaim) => {
it(`should sign and verify with claim of ${util.inspect(privateClaim)}`, function (done) {
signWithPayload({privateClaim}, (e1, token) => {
testUtils.verifyJWTHelper(token, undefined, {}, (e2, decoded) => {
testUtils.asyncCheck(done, () => {
expect(e1).to.be.null;
expect(e2).to.be.null;
expect(decoded).to.have.property('privateClaim', null);
});
})
});
});
});

// private claims with value undefined are not added to the payload
it(`should sign and verify with claim of undefined`, function (done) {
signWithPayload({privateClaim: undefined}, (e1, token) => {
testUtils.verifyJWTHelper(token, undefined, {}, (e2, decoded) => {
testUtils.asyncCheck(done, () => {
expect(e1).to.be.null;
expect(e2).to.be.null;
expect(decoded).to.not.have.property('privateClaim');
});
})
});
});
});

0 comments on commit 6b62011

Please sign in to comment.