Skip to content

Commit

Permalink
Add tests for private claims in the payload (#555)
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 authored and ziluvatar committed Dec 14, 2018
1 parent 7eebbc7 commit 5147852
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 5147852

Please sign in to comment.