fix: tests
gitea/salix/pipeline/pr-master This commit looks good Details

This commit is contained in:
Jorge Penadés 2025-01-08 13:52:50 +01:00
parent c07e30a89c
commit f557b41feb
1 changed files with 62 additions and 3 deletions

View File

@ -4,6 +4,8 @@ const LoopBackContext = require('loopback-context');
describe('Worker deleteAbsence()', () => {
const businessId = 18;
const workerId = 18;
const hrId = 37;
const salesBossId = 19;
const activeCtx = {
accessToken: {userId: 1106},
headers: {origin: 'http://localhost'}
@ -50,16 +52,16 @@ describe('Worker deleteAbsence()', () => {
});
it('should successfully delete an absence', async() => {
activeCtx.accessToken.userId = 19;
activeCtx.accessToken.userId = salesBossId;
const tx = await app.models.Calendar.beginTransaction({});
const pastDate = new Date(Date.vnNow() + 24 * 60 * 60 * 1000);
try {
const options = {transaction: tx};
const createdAbsence = await app.models.Calendar.create({
businessFk: businessId,
dayOffTypeFk: 1,
dated: Date.vnNew()
dated: pastDate
}, options);
ctx.args = {absenceId: createdAbsence.id};
@ -76,4 +78,61 @@ describe('Worker deleteAbsence()', () => {
throw e;
}
});
it('should successfully delete an absence if the user is HR even if the date is in the past', async() => {
activeCtx.accessToken.userId = hrId;
const tx = await app.models.Calendar.beginTransaction({});
try {
const options = {transaction: tx};
const pastDate = new Date(Date.vnNow() - 24 * 60 * 60 * 1000); // Restar un día
const createdAbsence = await app.models.Calendar.create({
businessFk: businessId,
dayOffTypeFk: 1,
dated: pastDate
}, options);
ctx.args = {absenceId: createdAbsence.id};
await app.models.Worker.deleteAbsence(ctx, workerId, options);
const deletedAbsence = await app.models.Calendar.findById(createdAbsence.id, null, options);
expect(deletedAbsence).toBeNull();
await tx.rollback();
} catch (e) {
await tx.rollback();
throw e;
}
});
it('should throw an error if the date is in the past', async() => {
activeCtx.accessToken.userId = salesBossId;
const tx = await app.models.Calendar.beginTransaction({});
let error;
try {
const options = {transaction: tx};
const pastDate = new Date(Date.vnNow() - 24 * 60 * 60 * 1000);
const createdAbsence = await app.models.Calendar.create({
businessFk: businessId,
dayOffTypeFk: 1,
dated: pastDate
}, options);
ctx.args = {absenceId: createdAbsence.id};
await app.models.Worker.deleteAbsence(ctx, workerId, options);
const deletedAbsence = await app.models.Calendar.findById(createdAbsence.id, null, options);
expect(deletedAbsence).toBeNull();
await tx.rollback();
} catch (e) {
await tx.rollback();
error = e;
}
expect(error.message).toBe('Holidays to past days not available');
});
});