cjwt
Version:
Casstime jwt middleware
51 lines (43 loc) • 1.14 kB
JavaScript
const { expect } = require('chai');
const CJWT = require('../index');
const jwt = require('jsonwebtoken');
describe('cjwt.middleware', () => {
let cjwt;
const secret = 'secret_code';
before(() => {
cjwt = new CJWT({
secret,
signOptions: {},
verifyOptions: {
audience: 'test',
subject: 'test:test'
}
});
});
it('is function', (done) => {
const m = cjwt.middleware();
expect(m).to.be.a('function');
done();
});
it('parse headers jwt', (done) => {
const token = jwt.sign({fake: 'fake'}, secret, {
audience: 'test',
subject: 'test:test'
});
const request = {
headers: {
authorization: `Bearer ${token}`
},
method: 'GET'
};
const m = cjwt.middleware();
m(request, {}, () => {
expect(request.jwtPayload).to.have.property('sub', 'test:test');
expect(request.jwtPayload).to.have.property('from');
expect(request.cjwt.subject.type).to.eql('test');
expect(request.cjwt.getToken()).to.eql(token);
expect(request.cjwt.verify).to.be.a('function');
done();
});
});
});