38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
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');
|
|
}
|
|
});
|
|
});
|
|
|