UNPKG

cjwt

Version:
93 lines (81 loc) 2.07 kB
const { expect } = require('chai'); const CJWT = require('../index'); const jwt = require('jsonwebtoken'); describe('cjwt.sign', () => { it('string secret sign', (done) => { const ctx = { key: 'value' }; const secret = 'secret_code'; const cjwt = new CJWT({ secret, signOptions: {}, verifyOptions: {} }); cjwt.sign('type', 'id', ctx) .then((token) => { jwt.verify(token, secret, { subject: 'type:id', }, (error, result) => { if (error) { return done(error) } expect(result.ctx.key).to.eql(ctx.key); done(); }); }) .catch(done); }); it('function secret sign', (done) => { const ctx = { key: 'value' }; const secretCode = 'secret_code'; const secret = () => Promise.resolve(secretCode); const cjwt = new CJWT({ secret, signOptions: {}, verifyOptions: {} }); cjwt.sign('type', 'id', ctx) .then((token) => { jwt.verify(token, secretCode, { subject: 'type:id', }, (error, result) => { if (error) { return done(error) } expect(result.ctx.key).to.eql(ctx.key); done(); }); }) .catch(done); }); it('complex sign', (done) => { const ctx = { key: 'value' }; const secretCode = 'secret_code'; const secret = () => Promise.resolve(secretCode); const options = { audience: 'abc', issuer: 'test', jwtid: '123' }; const cjwt = new CJWT({ secret, signOptions: options, verifyOptions: {} }); cjwt.sign('type', 'id', ctx) .then((token) => { jwt.verify(token, secretCode, { subject: 'type:id', audience: 'abc', issuer: 'test', jwtid: '123' }, (error, result) => { if (error) { return done(error) } expect(result.ctx.key).to.eql(ctx.key); done(); }); }) .catch(done); }); });