This commit is contained in:
parent
37546e7a26
commit
c5e953f922
|
@ -1216,3 +1216,36 @@ INSERT INTO `postgresql`.`business_labour`(`business_id`, `notes`, `department_i
|
|||
(1, NULL, 22, 4, 0, 1, 1, 1, 1),
|
||||
(2, 'From las friday worker ownes the company 1 hour', 23, 1, 0, 1, 0, 1, 1);
|
||||
|
||||
INSERT INTO `vn`.`workCenter` (`id`, `name`, `warehouseFk`)
|
||||
VALUES
|
||||
('1', 'Silla', '1'),
|
||||
('5', 'Madrid', '5');
|
||||
|
||||
INSERT INTO `vn2008`.`workcenter_holiday` (`workcenter_id`, `day`, `year`)
|
||||
VALUES
|
||||
('1', '27.5', YEAR(CURDATE())),
|
||||
('5', '22', YEAR(CURDATE())),
|
||||
('1', '24.5', YEAR(DATE_ADD(CURDATE(), INTERVAL -1 YEAR))),
|
||||
('5', '23', YEAR(DATE_ADD(CURDATE(), INTERVAL -1 YEAR)));
|
||||
|
||||
INSERT INTO `postgresql`.`calendar_state` (`calendar_state_id`, `type`, `rgb`)
|
||||
VALUES
|
||||
('1', 'Holidays', '#FF4444'),
|
||||
('2', 'Leave of absence', '#C71585');
|
||||
|
||||
INSERT INTO `postgresql`.`calendar_employee` (`business_id`, `calendar_state_id`, `date`)
|
||||
VALUES
|
||||
('1', '1', DATE_ADD(CURDATE(), INTERVAL 10 DAY)),
|
||||
('1', '1', DATE_ADD(CURDATE(), INTERVAL 11 DAY)),
|
||||
('1', '1', DATE_ADD(CURDATE(), INTERVAL 12 DAY)),
|
||||
('1', '1', DATE_ADD(CURDATE(), INTERVAL 20 DAY)),
|
||||
('1', '2', DATE_ADD(CURDATE(), INTERVAL -10 DAY)),
|
||||
('1', '1', DATE_ADD(CURDATE(), INTERVAL -12 DAY)),
|
||||
('1', '2', DATE_ADD(CURDATE(), INTERVAL -20 DAY)),
|
||||
('2', '1', DATE_ADD(CURDATE(), INTERVAL 15 DAY)),
|
||||
('2', '1', DATE_ADD(CURDATE(), INTERVAL 16 DAY)),
|
||||
('2', '1', DATE_ADD(CURDATE(), INTERVAL 20 DAY)),
|
||||
('2', '1', DATE_ADD(CURDATE(), INTERVAL 30 DAY)),
|
||||
('2', '2', DATE_ADD(CURDATE(), INTERVAL -10 DAY)),
|
||||
('2', '1', DATE_ADD(CURDATE(), INTERVAL -12 DAY)),
|
||||
('2', '2', DATE_ADD(CURDATE(), INTERVAL -20 DAY));
|
|
@ -0,0 +1,30 @@
|
|||
const app = require('vn-loopback/server/server');
|
||||
|
||||
describe('Worker absences()', () => {
|
||||
it('should import sales to a claim actions from an specific ticket', async() => {
|
||||
let ctx = {req: {accessToken: {userId: 106}}};
|
||||
let workerFk = 106;
|
||||
|
||||
const started = new Date();
|
||||
started.setHours(0, 0, 0, 0);
|
||||
started.setMonth(0);
|
||||
started.setDate(1);
|
||||
|
||||
const monthIndex = 11;
|
||||
const ended = new Date();
|
||||
ended.setHours(0, 0, 0, 0);
|
||||
ended.setMonth(monthIndex + 1);
|
||||
// Last day of previous month (January)
|
||||
ended.setDate(0);
|
||||
|
||||
let result = await app.models.WorkerCalendar.absences(ctx, workerFk, started, ended);
|
||||
let calendar = result[0];
|
||||
let absences = result[1];
|
||||
|
||||
expect(calendar.totalHolidays).toEqual(15);
|
||||
expect(calendar.holidaysEnjoyed).toEqual(5);
|
||||
|
||||
expect(absences[0].absenceType().id).toEqual(2);
|
||||
expect(absences[5].absenceType().id).toEqual(1);
|
||||
});
|
||||
});
|
|
@ -37,9 +37,10 @@ class Controller {
|
|||
}
|
||||
|
||||
setHolidays(data) {
|
||||
if (!data.holidays) return;
|
||||
|
||||
const holidays = data.holidays;
|
||||
const events = [];
|
||||
|
||||
holidays.forEach(holiday => {
|
||||
events.push({
|
||||
date: holiday.dated,
|
||||
|
@ -52,6 +53,8 @@ class Controller {
|
|||
}
|
||||
|
||||
setWorkerCalendar(data) {
|
||||
if (!data.absences) return;
|
||||
|
||||
const absences = data.absences;
|
||||
const events = [];
|
||||
absences.forEach(absence => {
|
||||
|
@ -91,11 +94,12 @@ class Controller {
|
|||
let months = new Array(12);
|
||||
|
||||
for (let i = 0; i < months.length; i++) {
|
||||
const currentDate = new Date();
|
||||
currentDate.setMonth(i);
|
||||
currentDate.setDate(1);
|
||||
const now = new Date();
|
||||
now.setHours(0, 0, 0, 0);
|
||||
now.setMonth(i);
|
||||
now.setDate(1);
|
||||
|
||||
months[i] = currentDate;
|
||||
months[i] = now;
|
||||
}
|
||||
|
||||
return months;
|
||||
|
|
|
@ -0,0 +1,117 @@
|
|||
import './index';
|
||||
|
||||
describe('Worker', () => {
|
||||
describe('Component vnWorkerCalendar', () => {
|
||||
let $componentController;
|
||||
let $httpParamSerializer;
|
||||
let $httpBackend;
|
||||
let $scope;
|
||||
let controller;
|
||||
|
||||
beforeEach(ngModule('worker'));
|
||||
|
||||
beforeEach(angular.mock.inject((_$componentController_, $rootScope, _$httpBackend_, _$httpParamSerializer_) => {
|
||||
$componentController = _$componentController_;
|
||||
$scope = $rootScope.$new();
|
||||
$httpBackend = _$httpBackend_;
|
||||
$httpParamSerializer = _$httpParamSerializer_;
|
||||
controller = $componentController('vnWorkerCalendar', {$scope, $httpBackend});
|
||||
}));
|
||||
|
||||
describe('started() getter', () => {
|
||||
it(`should return first day and month of current year`, () => {
|
||||
let started = new Date();
|
||||
started.setHours(0, 0, 0, 0);
|
||||
started.setMonth(0);
|
||||
started.setDate(1);
|
||||
|
||||
|
||||
expect(controller.started).toEqual(started);
|
||||
});
|
||||
});
|
||||
|
||||
describe('ended() getter', () => {
|
||||
it(`should return last day and month of current year`, () => {
|
||||
const monthIndex = 11;
|
||||
const ended = new Date();
|
||||
ended.setHours(0, 0, 0, 0);
|
||||
ended.setMonth(monthIndex + 1);
|
||||
// Last day of previous month (January)
|
||||
ended.setDate(0);
|
||||
|
||||
expect(controller.ended).toEqual(ended);
|
||||
});
|
||||
});
|
||||
|
||||
describe('monthsOfYear()', () => {
|
||||
it(`should return an array of twelve months length`, () => {
|
||||
const months = controller.monthsOfYear();
|
||||
const ended = new Date();
|
||||
ended.setHours(0, 0, 0, 0);
|
||||
ended.setMonth(11);
|
||||
ended.setDate(1);
|
||||
|
||||
expect(months.length).toEqual(12);
|
||||
expect(months[0]).toEqual(controller.started);
|
||||
expect(months[11]).toEqual(ended);
|
||||
});
|
||||
});
|
||||
|
||||
describe('worker() setter', () => {
|
||||
it(`should perform a get query and call setHolidays() and setWorkerCalendar() methods`, () => {
|
||||
const worker = {id: 106};
|
||||
spyOn(controller, 'setHolidays');
|
||||
spyOn(controller, 'setWorkerCalendar');
|
||||
|
||||
const expectedData = {
|
||||
calendar: {},
|
||||
absences: {}
|
||||
};
|
||||
let params = $httpParamSerializer({
|
||||
workerFk: worker.id,
|
||||
started: controller.started,
|
||||
ended: controller.ended
|
||||
});
|
||||
$httpBackend.when('GET', `/worker/api/WorkerCalendars/absences?${params}`).respond(expectedData);
|
||||
$httpBackend.expect('GET', `/worker/api/WorkerCalendars/absences?${params}`);
|
||||
|
||||
controller.worker = worker;
|
||||
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller.setHolidays).toHaveBeenCalledWith(expectedData);
|
||||
expect(controller.setHolidays).toHaveBeenCalledWith(expectedData);
|
||||
});
|
||||
});
|
||||
|
||||
describe('setHolidays()', () => {
|
||||
it(`should `, () => {
|
||||
const data = {holidays: [
|
||||
{dated: new Date(), detail: {description: 'New year'}},
|
||||
{dated: new Date(), detail: {description: 'Easter'}}
|
||||
]};
|
||||
controller.setHolidays(data);
|
||||
|
||||
expect(controller.events.length).toEqual(2);
|
||||
expect(controller.events[0].title).toEqual('New year');
|
||||
expect(controller.events[0].isRemovable).toEqual(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('setWorkerCalendar()', () => {
|
||||
it(`should `, () => {
|
||||
const data = {absences: [
|
||||
{dated: new Date(), absenceType: {name: 'Holiday', rgb: '#000'}},
|
||||
{dated: new Date(), absenceType: {name: 'Leave', rgb: '#000'}}
|
||||
]};
|
||||
controller.setWorkerCalendar(data);
|
||||
|
||||
expect(controller.events.length).toEqual(2);
|
||||
expect(controller.events[0].title).toEqual('Holiday');
|
||||
expect(controller.events[0].style).toBeDefined();
|
||||
expect(controller.events[1].title).toEqual('Leave');
|
||||
expect(controller.events[1].style).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue