54 lines
1.7 KiB
JavaScript
54 lines
1.7 KiB
JavaScript
const app = require('vn-loopback/server/server');
|
|
const LoopBackContext = require('loopback-context');
|
|
|
|
describe('Worker updateAbsence()', () => {
|
|
const workerId = 1106;
|
|
const businessId = 1106;
|
|
const activeCtx = {
|
|
accessToken: {userId: 1106},
|
|
headers: {origin: 'http://localhost'}
|
|
};
|
|
const ctx = {req: activeCtx};
|
|
ctx.req.__ = value => {
|
|
return value;
|
|
};
|
|
let createdAbsence;
|
|
|
|
beforeEach(async() => {
|
|
spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({
|
|
active: activeCtx
|
|
});
|
|
createdAbsence = await app.models.Calendar.create({
|
|
businessFk: businessId,
|
|
dayOffTypeFk: 1,
|
|
dated: Date.vnNew()
|
|
});
|
|
});
|
|
|
|
afterEach(async() => {
|
|
await app.models.Calendar.destroyById(createdAbsence.id);
|
|
});
|
|
|
|
it('should return an error for a user without enough privileges', async() => {
|
|
activeCtx.accessToken.userId = 1106;
|
|
const expectedAbsenceTypeId = 2;
|
|
|
|
let error;
|
|
await app.models.Worker.updateAbsence(ctx, workerId, createdAbsence.id, expectedAbsenceTypeId).catch(e => {
|
|
error = e;
|
|
}).finally(() => {
|
|
expect(error.message).toEqual(`You don't have enough privileges`);
|
|
});
|
|
|
|
expect(error).toBeDefined();
|
|
});
|
|
|
|
it('should create a new absence', async() => {
|
|
activeCtx.accessToken.userId = 37;
|
|
const expectedAbsenceTypeId = 2;
|
|
const updatedAbsence = await app.models.Worker.updateAbsence(ctx, workerId, createdAbsence.id, expectedAbsenceTypeId);
|
|
|
|
expect(updatedAbsence.dayOffTypeFk).toEqual(expectedAbsenceTypeId);
|
|
});
|
|
});
|