title translations, and getWorkedHours test
gitea/salix/pipeline/head This commit looks good Details

This commit is contained in:
Alex Moreno 2022-06-28 12:10:37 +02:00
parent a3f1c36226
commit 22fd0e91b0
6 changed files with 34 additions and 34 deletions

View File

@ -2239,7 +2239,7 @@ INSERT INTO `vn`.`workerTimeControl`(`userFk`, `timed`, `manual`, `direction`)
(1106, CONCAT(util.VN_CURDATE(), ' 07:00'), TRUE, 'in'),
(1106, CONCAT(util.VN_CURDATE(), ' 10:00'), TRUE, 'middle'),
(1106, CONCAT(util.VN_CURDATE(), ' 10:20'), TRUE, 'middle'),
(1106, CONCAT(util.VN_CURDATE(), ' 15:00'), TRUE, 'out');
(1106, CONCAT(util.VN_CURDATE(), ' 14:50'), TRUE, 'out');
INSERT INTO `vn`.`dmsType`(`id`, `name`, `path`, `readRoleFk`, `writeRoleFk`, `code`)
VALUES

View File

@ -918,7 +918,7 @@ export default {
weekWorkedHours: 'vn-worker-time-control vn-side-menu vn-label-value > section > span',
nextMonthButton: 'vn-worker-time-control vn-side-menu vn-calendar vn-button[icon=keyboard_arrow_right]',
previousMonthButton: 'vn-worker-time-control vn-side-menu vn-calendar vn-button[icon=keyboard_arrow_left]',
nameOfMonth: 'vn-worker-time-control vn-side-menu vn-calendar div > .title',
monthName: 'vn-worker-time-control vn-side-menu vn-calendar div > .title',
secondWeekDay: 'vn-worker-time-control vn-side-menu vn-calendar .day:nth-child(8) > .day-number',
thrirdWeekDay: 'vn-worker-time-control vn-side-menu vn-calendar .day:nth-child(15) > .day-number',
navigateBackToIndex: 'vn-worker-descriptor [name="goToModuleIndex"]'

View File

@ -17,7 +17,7 @@ describe('Worker time control path', () => {
await browser.close();
});
const heightAm = '08:00';
const eightAm = '08:00';
const fourPm = '16:00';
const hankPymId = 1107;
@ -27,7 +27,7 @@ describe('Worker time control path', () => {
const month = date.toLocaleString('default', {month: 'long'});
await page.waitToClick(selectors.workerTimeControl.nextMonthButton);
const result = await page.waitToGetProperty(selectors.workerTimeControl.nameOfMonth, 'innerText');
const result = await page.waitToGetProperty(selectors.workerTimeControl.monthName, 'innerText');
expect(result).toContain(month);
});
@ -37,7 +37,7 @@ describe('Worker time control path', () => {
const month = date.toLocaleString('default', {month: 'long'});
await page.waitToClick(selectors.workerTimeControl.previousMonthButton);
const result = await page.waitToGetProperty(selectors.workerTimeControl.nameOfMonth, 'innerText');
const result = await page.waitToGetProperty(selectors.workerTimeControl.monthName, 'innerText');
expect(result).toContain(month);
});
@ -52,14 +52,14 @@ describe('Worker time control path', () => {
await page.goto(`http://localhost:5000/#!/worker/${hankPymId}/time-control?timestamp=${timestamp}`);
await page.waitToClick(selectors.workerTimeControl.secondWeekDay);
const result = await page.waitToGetProperty(selectors.workerTimeControl.nameOfMonth, 'innerText');
const result = await page.waitToGetProperty(selectors.workerTimeControl.monthName, 'innerText');
expect(result).toContain(month);
});
it(`should return error when insert 'out' of first entry`, async() => {
await page.waitToClick(selectors.workerTimeControl.mondayAddTimeButton);
await page.pickTime(selectors.workerTimeControl.dialogTimeInput, heightAm);
await page.pickTime(selectors.workerTimeControl.dialogTimeInput, eightAm);
await page.autocompleteSearch(selectors.workerTimeControl.dialogTimeDirection, 'out');
await page.respondToDialog('accept');
const message = await page.waitForSnackbar();
@ -69,12 +69,12 @@ describe('Worker time control path', () => {
it(`should insert 'in' monday`, async() => {
await page.waitToClick(selectors.workerTimeControl.mondayAddTimeButton);
await page.pickTime(selectors.workerTimeControl.dialogTimeInput, heightAm);
await page.pickTime(selectors.workerTimeControl.dialogTimeInput, eightAm);
await page.autocompleteSearch(selectors.workerTimeControl.dialogTimeDirection, 'in');
await page.respondToDialog('accept');
const result = await page.waitToGetProperty(selectors.workerTimeControl.firstEntryOfMonday, 'innerText');
expect(result).toEqual(heightAm);
expect(result).toEqual(eightAm);
});
it(`should insert 'out' monday`, async() => {
@ -93,7 +93,7 @@ describe('Worker time control path', () => {
});
it('should remove first entry of monday', async() => {
await page.waitForTextInElement(selectors.workerTimeControl.firstEntryOfMonday, heightAm);
await page.waitForTextInElement(selectors.workerTimeControl.firstEntryOfMonday, eightAm);
await page.waitForTextInElement(selectors.workerTimeControl.secondEntryOfMonday, fourPm);
await page.waitToClick(selectors.workerTimeControl.firstEntryOfMondayDelete);
await page.respondToDialog('accept');

View File

@ -125,9 +125,9 @@
"routeFk": "routeFk",
"Not enough privileges to edit a client with verified data": "Not enough privileges to edit a client with verified data",
"Can't change the password of another worker": "Can't change the password of another worker",
"No hay un contrato en vigor": "There is no contract in force",
"No hay un contrato en vigor": "There is no existing contract",
"No está permitido trabajar": "Not allowed to work",
"Dirección incorrecta": "Wrong address",
"Dirección incorrecta": "Wrong direction",
"No se permite fichar a futuro": "It is not allowed to sign in the future",
"Descanso diario 12h.": "Daily rest 12h.",
"Fichadas impares": "Odd signs",

View File

@ -63,7 +63,7 @@ describe('workerTimeControl add/delete timeEntry()', () => {
expect(error.message).toBe(`You don't have enough privileges`);
});
it('should add if the current user is team boss and the target user is a himself', async() => {
it('should add if the current user is team boss and the target user is himself', async() => {
activeCtx.accessToken.userId = teamBossId;
const workerId = teamBossId;
@ -199,8 +199,8 @@ describe('workerTimeControl add/delete timeEntry()', () => {
});
});
describe('as WorkerTimeControl_clockIn calls', () => {
it('should fail to add a time entry if the target user has absent that day', async() => {
describe('WorkerTimeControl_clockIn calls', () => {
it('should fail to add a time entry if the target user has an absence that day', async() => {
activeCtx.accessToken.userId = salesBossId;
const workerId = hankPymId;
const date = new Date();
@ -223,7 +223,7 @@ describe('workerTimeControl add/delete timeEntry()', () => {
expect(error.message).toBe(`No está permitido trabajar`);
});
it('should fail to add a time entry if worker no have business', async() => {
it('should fail to add a time entry for a worker without an existing contract', async() => {
activeCtx.accessToken.userId = salesBossId;
const workerId = hankPymId;
const date = new Date();
@ -245,8 +245,8 @@ describe('workerTimeControl add/delete timeEntry()', () => {
expect(error.message).toBe(`No hay un contrato en vigor`);
});
describe('as direction errors', () => {
it('should return error when set in with in', async() => {
describe('direction errors', () => {
it('should throw an error when trying "in" direction twice', async() => {
activeCtx.accessToken.userId = salesBossId;
const workerId = hankPymId;
@ -275,7 +275,7 @@ describe('workerTimeControl add/delete timeEntry()', () => {
expect(error.message).toBe(`Dirección incorrecta`);
});
it('should return error when set in with in, middle', async() => {
it('should throw an error when trying "in" direction after insert "in" and "middle"', async() => {
activeCtx.accessToken.userId = salesBossId;
const workerId = hankPymId;
@ -308,7 +308,7 @@ describe('workerTimeControl add/delete timeEntry()', () => {
expect(error.message).toBe(`Dirección incorrecta`);
});
it('should return error when set out with in, middle', async() => {
it('Should throw an error when trying "out" before closing a "middle" couple', async() => {
activeCtx.accessToken.userId = salesBossId;
const workerId = hankPymId;
@ -341,7 +341,7 @@ describe('workerTimeControl add/delete timeEntry()', () => {
expect(error.message).toBe(`Dirección incorrecta`);
});
it('should return error when set middle with in, out', async() => {
it('should throw an error when trying "middle" after "out"', async() => {
activeCtx.accessToken.userId = salesBossId;
const workerId = hankPymId;
@ -374,7 +374,7 @@ describe('workerTimeControl add/delete timeEntry()', () => {
expect(error.message).toBe(`Dirección incorrecta`);
});
it('should return error when set out with in, out', async() => {
it('should throw an error when trying "out" direction twice', async() => {
activeCtx.accessToken.userId = salesBossId;
const workerId = hankPymId;
@ -408,8 +408,8 @@ describe('workerTimeControl add/delete timeEntry()', () => {
});
});
describe('as break 12h', () => {
it('should return error when not fulfilled 12H break', async() => {
describe('12h rest', () => {
it('should throw an error when the 12h rest is not fulfilled yet', async() => {
activeCtx.accessToken.userId = salesBossId;
const workerId = hankPymId;
@ -443,7 +443,7 @@ describe('workerTimeControl add/delete timeEntry()', () => {
expect(error.message).toBe(`Descanso diario 12h.`);
});
it('should not fail when fulfilled 12H break', async() => {
it('should not fail as the 12h rest is fulfilled', async() => {
activeCtx.accessToken.userId = salesBossId;
const workerId = hankPymId;
@ -478,8 +478,8 @@ describe('workerTimeControl add/delete timeEntry()', () => {
});
});
describe('as break 9h for conductors of 3500kg', () => {
it('should return error when not fulfilled 9H break', async() => {
describe('for 3500kg drivers with enforced 9h rest', () => {
it('should throw an error when the 9h enforced rest is not fulfilled', async() => {
activeCtx.accessToken.userId = salesBossId;
const workerId = jessicaJonesId;
@ -513,7 +513,7 @@ describe('workerTimeControl add/delete timeEntry()', () => {
expect(error.message).toBe(`Descanso diario 9h.`);
});
it('should not fail when fulfilled 9H break', async() => {
it('should not fail when the 9h enforced rest is fulfilled', async() => {
activeCtx.accessToken.userId = salesBossId;
const workerId = jessicaJonesId;
@ -548,8 +548,8 @@ describe('workerTimeControl add/delete timeEntry()', () => {
});
});
describe('as short break', () => {
it('should return error when not fulfilled 36H week break', async() => {
describe('for 36h weekly rest', () => {
it('should throw an error when the 36h weekly rest is not fulfilled', async() => {
activeCtx.accessToken.userId = salesBossId;
const workerId = hankPymId;
@ -583,7 +583,7 @@ describe('workerTimeControl add/delete timeEntry()', () => {
expect(error.message).toBe(`Descanso semanal 36h. / 72h.`);
});
it('should return error when not fulfilled 36H week break again', async() => {
it('should throw an error when the 36h weekly rest is not fulfilled again', async() => {
activeCtx.accessToken.userId = salesBossId;
const workerId = hankPymId;
@ -615,8 +615,8 @@ describe('workerTimeControl add/delete timeEntry()', () => {
});
});
describe('as long break', () => {
it('should return error when not fulfilled 72H week break', async() => {
describe('for 72h weekly rest', () => {
it('should throw when the 72h weekly rest is not fulfilled yet', async() => {
activeCtx.accessToken.userId = salesBossId;
const workerId = hankPymId;

View File

@ -12,6 +12,6 @@ describe('Worker getWorkedHours()', () => {
const [result] = await models.Worker.getWorkedHours(workerID, started, ended);
expect(result.expectedHours).toEqual(28800); // 8:00 hours in seconds
expect(result.workedHours).toEqual(28800); // 8:00 hours in seconds
expect(result.workedHours).toEqual(28200); // 7:50 hours in seconds
});
});