var Jwt = require('../../src/lib/jwt'); var sinon = require('sinon'); describe('test jwt', function() { it('should sign and verify the token', function() { var data = {user: 'user'}; var secret = 'secret'; var jwt = new Jwt(secret); return jwt.sign(data, '1m') .then(function(token) { return jwt.verify(token); }); }); it('should verify and fail on wrong token', function() { var jwt = new Jwt('secret'); var token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoidXNlciIsImlhdCI6MTQ4NDc4NTExMywiZXhwIjoaNDg0Nzg1MTczfQ.yZOZEaMDyOn0tSDiDSPYl4ZP2oL3FQ-Vrzds7hYcNio'; return jwt.verify(token).catch(function() { return Promise.resolve(); }); }); it('should fail after expiry', function() { var clock = sinon.useFakeTimers(0); var data = { user: 'user' }; var jwt = new Jwt('secret'); return jwt.sign(data, '1m') .then(function(token) { clock.tick(1000 * 61); // 61 seconds return jwt.verify(token); }) .catch(function() { clock.restore(); return Promise.resolve(); }); }); });