const {models} = require('vn-loopback/server/server'); describe('Renew Token', () => { const startingTime = Date.now(); let ctx = null; beforeAll(async() => { const unAuthCtx = { req: { headers: {}, connection: { remoteAddress: '127.0.0.1' }, getLocale: () => 'en' }, args: {} }; let login = await models.VnUser.signIn(unAuthCtx, 'salesAssistant', 'nightmare'); let accessToken = await models.AccessToken.findById(login.token); ctx = {req: {accessToken: accessToken}}; }); beforeEach(() => { jasmine.clock().install(); jasmine.clock().mockDate(new Date(startingTime)); }); afterEach(() => { jasmine.clock().uninstall(); }); it('should renew process', async() => { jasmine.clock().mockDate(new Date(startingTime + 21600000)); const {id} = await models.VnUser.renewToken(ctx); expect(id).not.toEqual(ctx.req.accessToken.id); }); it('NOT should renew', async() => { let error; try { await models.VnUser.renewToken(ctx); } catch (e) { error = e; } expect(error).toBeDefined(); expect(error.statusCode).toBe(400); expect(error.message).toEqual('The renew period has not been exceeded'); }); });