const models = require('vn-loopback/server/server').models; describe('workerTimeControl getMailStates()', () => { const developerId = 9; const developerBossId = 120; const employeeId = 1; let ctx; let tx; let opts; beforeEach(async() => { ctx = {req: {accessToken: {userId: developerBossId}}, args: {month: 12, year: 2000}}; tx = await models.WorkerTimeControl.beginTransaction({}); opts = {transaction: tx}; }); afterEach(async() => await tx.rollback()); it('should get the states of a month about time control mail', async() => { const response = await models.WorkerTimeControl.getMailStates(ctx, developerId, opts); expect(response[0].state).toEqual('REVISE'); expect(response[1].state).toEqual('SENDED'); expect(response[2].state).toEqual('CONFIRMED'); }); it('should throw an error if they are not subordinates', async() => { ctx.req.accessToken.userId = employeeId; try { await models.WorkerTimeControl.getMailStates(ctx, developerId, opts); } catch (e) { expect(e.message).toEqual('You don\'t have enough privileges'); } }); });