const {models} = require('vn-loopback/server/server'); describe('VnUser signOut()', () => { it('should logout and remove token after valid login', async() => { let loginResponse = await models.VnUser.signOut('buyer', 'nightmare'); let accessToken = await models.AccessToken.findById(loginResponse.token); let ctx = {req: {accessToken: accessToken}}; let logoutResponse = await models.VnUser.signOut(ctx); let tokenAfterLogout = await models.AccessToken.findById(loginResponse.token); expect(logoutResponse).toBeTrue(); expect(tokenAfterLogout).toBeNull(); }); it('should throw a 401 error when token is invalid', async() => { let error; let ctx = {req: {accessToken: {id: 'invalidToken'}}}; try { response = await models.VnUser.signOut(ctx); } catch (e) { error = e; } expect(error).toBeDefined(); expect(error.statusCode).toBe(401); }); it('should throw an error when no token is passed', async() => { let error; let ctx = {req: {accessToken: null}}; try { response = await models.VnUser.signOut(ctx); } catch (e) { error = e; } expect(error).toBeDefined(); }); });