104 lines
3.1 KiB
JavaScript
104 lines
3.1 KiB
JavaScript
const models = require('vn-loopback/server/server').models;
|
|
|
|
describe('updateMailState()', () => {
|
|
const developerId = 9;
|
|
const employeeId = 1;
|
|
it('should update WorkerTimeControlMail if exist record', async() => {
|
|
const tx = await models.WorkerTimeControlMail.beginTransaction({});
|
|
const args = {
|
|
week: 50,
|
|
year: 2000,
|
|
state: 'CONFIRMED'
|
|
};
|
|
const ctx = {args};
|
|
|
|
try {
|
|
const options = {transaction: tx};
|
|
const beforeMail = await models.WorkerTimeControlMail.findOne({
|
|
where: {
|
|
workerFk: developerId,
|
|
year: args.year,
|
|
week: args.week,
|
|
}
|
|
}, options);
|
|
await models.WorkerTimeControl.updateMailState(ctx, developerId, options);
|
|
const afterMail = await models.WorkerTimeControlMail.findOne({
|
|
where: {
|
|
workerFk: developerId,
|
|
year: args.year,
|
|
week: args.week,
|
|
}
|
|
}, options);
|
|
|
|
expect(beforeMail.state).toEqual('SENDED');
|
|
expect(afterMail.state).toEqual(args.state);
|
|
|
|
await tx.rollback();
|
|
} catch (e) {
|
|
await tx.rollback();
|
|
throw e;
|
|
}
|
|
});
|
|
|
|
it('should insert WorkerTimeControlMail if exist record', async() => {
|
|
const tx = await models.WorkerTimeControlMail.beginTransaction({});
|
|
const args = {
|
|
week: 51,
|
|
year: 2000,
|
|
state: 'SENDED'
|
|
};
|
|
const ctx = {args};
|
|
|
|
try {
|
|
const options = {transaction: tx};
|
|
const beforeMail = await models.WorkerTimeControlMail.find({
|
|
where: {
|
|
workerFk: employeeId,
|
|
year: args.year,
|
|
week: args.week,
|
|
}
|
|
}, options);
|
|
await models.WorkerTimeControl.updateMailState(ctx, employeeId, options);
|
|
const afterMail = await models.WorkerTimeControlMail.find({
|
|
where: {
|
|
workerFk: employeeId,
|
|
year: args.year,
|
|
week: args.week,
|
|
}
|
|
}, options);
|
|
|
|
expect(beforeMail).toEqual([]);
|
|
expect(afterMail.length).toEqual(1);
|
|
|
|
await tx.rollback();
|
|
} catch (e) {
|
|
await tx.rollback();
|
|
throw e;
|
|
}
|
|
});
|
|
|
|
it('should throw error if not exist any record in this week', async() => {
|
|
const tx = await models.WorkerTimeControlMail.beginTransaction({});
|
|
const ctx = {args: {
|
|
workerId: employeeId,
|
|
week: 1,
|
|
year: 0,
|
|
state: 'SENDED'
|
|
}};
|
|
|
|
let error;
|
|
try {
|
|
const options = {transaction: tx};
|
|
await models.WorkerTimeControl.updateMailState(ctx, employeeId, options);
|
|
|
|
await tx.rollback();
|
|
} catch (e) {
|
|
await tx.rollback();
|
|
error = e;
|
|
}
|
|
|
|
expect(error.message).toEqual(`There aren't records for this week`);
|
|
});
|
|
});
|
|
|