This commit is contained in:
parent
c58d94ccd8
commit
11b99d9a5f
|
@ -433,7 +433,7 @@ INSERT INTO `vn`.`invoiceOutSerial` (`code`, `description`, `isTaxed`, `taxAreaF
|
||||||
('T', 'Española rapida', 1, 'NATIONAL', 0),
|
('T', 'Española rapida', 1, 'NATIONAL', 0),
|
||||||
('V', 'Intracomunitaria global', 0, 'CEE', 1);
|
('V', 'Intracomunitaria global', 0, 'CEE', 1);
|
||||||
|
|
||||||
INSERT INTO `vn`.`zone` (`id`, `name`, `hour`, `warehouseFk`, `agencyModeFk`, `travelingDays`, `price`, `bonus`)
|
INSERT INTO `vn`.`zone` (`id`, `name`, `hour`, `warehouseFk`, `agencyModeFk`, `travelingDays`, `price`, `bonus`)
|
||||||
VALUES
|
VALUES
|
||||||
(1, 'Zone pickup A', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 1, 0, 0, 0),
|
(1, 'Zone pickup A', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 1, 0, 0, 0),
|
||||||
(2, 'Zone pickup B', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 2, 1, 0, 0, 0),
|
(2, 'Zone pickup B', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 2, 1, 0, 0, 0),
|
||||||
|
@ -441,8 +441,8 @@ INSERT INTO `vn`.`zone` (`id`, `name`, `hour`, `warehouseFk`, `agencyModeFk`, `t
|
||||||
(4, 'Zone 247 B', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 2, 7, 1, 2, 0),
|
(4, 'Zone 247 B', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 2, 7, 1, 2, 0),
|
||||||
(5, 'Zone expensive A', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 8, 1, 1000, 0),
|
(5, 'Zone expensive A', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 8, 1, 1000, 0),
|
||||||
(6, 'Zone expensive B', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 2, 8, 1, 1000, 0),
|
(6, 'Zone expensive B', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 2, 8, 1, 1000, 0),
|
||||||
(7, 'Zone refund', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 10, 0, 0, 0),
|
(7, 'Zone refund', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 23, 0, 0, 0),
|
||||||
(8, 'Zone others', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 23, 0, 0, 0),
|
(8, 'Zone others', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 10, 0, 0, 0),
|
||||||
(9, 'Zone superMan', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 2, 0, 0, 0),
|
(9, 'Zone superMan', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 2, 0, 0, 0),
|
||||||
(10, 'Zone teleportation', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 3, 3, 0, 0, 0),
|
(10, 'Zone teleportation', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 3, 3, 0, 0, 0),
|
||||||
(11, 'Zone pickup C', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 5, 1, 0, 0, 0),
|
(11, 'Zone pickup C', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 5, 1, 0, 0, 0),
|
||||||
|
@ -473,8 +473,8 @@ INSERT INTO `vn`.`ticket`(`id`, `priority`, `agencyModeFk`,`warehouseFk`,`routeF
|
||||||
(20, 1, 5, 5, 3, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 109, 'Somewhere in Thailand', 129, NULL, 0, 13, DATE_ADD(CURDATE(), INTERVAL +1 MONTH)),
|
(20, 1, 5, 5, 3, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 109, 'Somewhere in Thailand', 129, NULL, 0, 13, DATE_ADD(CURDATE(), INTERVAL +1 MONTH)),
|
||||||
(21, NULL, 5, 5, NULL, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 109, 'Somewhere in Holland', 102, NULL, 0, 13, DATE_ADD(CURDATE(), INTERVAL +1 MONTH)),
|
(21, NULL, 5, 5, NULL, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 109, 'Somewhere in Holland', 102, NULL, 0, 13, DATE_ADD(CURDATE(), INTERVAL +1 MONTH)),
|
||||||
(22, NULL, 5, 5, NULL, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 109, 'Somewhere in Japan', 103, NULL, 0, 13, DATE_ADD(CURDATE(), INTERVAL +1 MONTH)),
|
(22, NULL, 5, 5, NULL, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 109, 'Somewhere in Japan', 103, NULL, 0, 13, DATE_ADD(CURDATE(), INTERVAL +1 MONTH)),
|
||||||
(23, NULL, 23, 1, NULL, CURDATE(), DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 101, 'address 21', 121, NULL, 0, 8, CURDATE()),
|
(23, NULL, 10, 1, NULL, CURDATE(), DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 101, 'address 21', 121, NULL, 0, 8, CURDATE()),
|
||||||
(24 ,NULL, 23, 1, NULL, CURDATE(), CURDATE(), 101, 'Bruce Wayne', 1, NULL, 0, 8, CURDATE());
|
(24 ,NULL, 10, 1, NULL, CURDATE(), CURDATE(), 101, 'Bruce Wayne', 1, NULL, 0, 8, CURDATE());
|
||||||
|
|
||||||
INSERT INTO `vn`.`ticketObservation`(`id`, `ticketFk`, `observationTypeFk`, `description`)
|
INSERT INTO `vn`.`ticketObservation`(`id`, `ticketFk`, `observationTypeFk`, `description`)
|
||||||
VALUES
|
VALUES
|
||||||
|
|
|
@ -11,6 +11,7 @@ describe('Item regularize path', () => {
|
||||||
|
|
||||||
it('should edit the user local warehouse', async() => {
|
it('should edit the user local warehouse', async() => {
|
||||||
let result = await nightmare
|
let result = await nightmare
|
||||||
|
.waitForSpinnerLoad()
|
||||||
.waitToClick(selectors.globalItems.userMenuButton)
|
.waitToClick(selectors.globalItems.userMenuButton)
|
||||||
.autocompleteSearch(selectors.globalItems.userLocalWarehouse, 'Warehouse Four')
|
.autocompleteSearch(selectors.globalItems.userLocalWarehouse, 'Warehouse Four')
|
||||||
.waitForLastSnackbar();
|
.waitForLastSnackbar();
|
||||||
|
|
|
@ -11,10 +11,58 @@ describe('Ticket Edit basic data path', () => {
|
||||||
.accessToSection('ticket.card.basicData.stepOne');
|
.accessToSection('ticket.card.basicData.stepOne');
|
||||||
});
|
});
|
||||||
|
|
||||||
it(`should edit the ticket agency then click next`, async() => {
|
it(`should confirm the zone autocomplete is disabled unless your role is productionBoss`, async() => {
|
||||||
|
const disabled = await nightmare
|
||||||
|
.wait(selectors.ticketBasicData.zoneAutocomplete)
|
||||||
|
.evaluate(selector => {
|
||||||
|
return document.querySelector(selector).disabled;
|
||||||
|
}, `${selectors.ticketBasicData.zoneAutocomplete} input`);
|
||||||
|
|
||||||
|
expect(disabled).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should now log as productionBoss to perform the rest of the tests`, async() => {
|
||||||
|
await nightmare
|
||||||
|
.loginAndModule('productionBoss', 'ticket')
|
||||||
|
.accessToSearchResult(11)
|
||||||
|
.accessToSection('ticket.card.basicData.stepOne');
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should confirm the zone autocomplete is enabled for the role productionBoss`, async() => {
|
||||||
|
const disabled = await nightmare
|
||||||
|
.wait(selectors.ticketBasicData.zoneAutocomplete)
|
||||||
|
.evaluate(selector => {
|
||||||
|
return document.querySelector(selector).disabled;
|
||||||
|
}, `${selectors.ticketBasicData.zoneAutocomplete} input`);
|
||||||
|
|
||||||
|
expect(disabled).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should check the zone is for Silla247`, async() => {
|
||||||
|
let zone = await nightmare
|
||||||
|
.waitToGetProperty(`${selectors.ticketBasicData.zoneAutocomplete} input`, 'value');
|
||||||
|
|
||||||
|
expect(zone).toContain('Zone 247 A');
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should edit the ticket agency then check there are no zones for it`, async() => {
|
||||||
|
let zone = await nightmare
|
||||||
|
.autocompleteSearch(selectors.ticketBasicData.agencyAutocomplete, 'Entanglement')
|
||||||
|
.getProperty(`${selectors.ticketBasicData.zoneAutocomplete} input`, 'value');
|
||||||
|
|
||||||
|
expect(zone.length).toEqual(0);
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should edit the ticket zone then check the agency is for the new zone`, async() => {
|
||||||
|
let zone = await nightmare
|
||||||
|
.autocompleteSearch(selectors.ticketBasicData.zoneAutocomplete, 'Zone expensive A')
|
||||||
|
.waitToGetProperty(`${selectors.ticketBasicData.agencyAutocomplete} input`, 'value');
|
||||||
|
|
||||||
|
expect(zone).toContain('Silla247Expensive');
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should click next`, async() => {
|
||||||
let url = await nightmare
|
let url = await nightmare
|
||||||
.autocompleteSearch(selectors.ticketBasicData.agencyAutocomplete, 'Silla247Expensive')
|
|
||||||
.waitToGetProperty(`${selectors.ticketBasicData.zoneAutocomplete} input`, 'value')
|
|
||||||
.waitToClick(selectors.ticketBasicData.nextStepButton)
|
.waitToClick(selectors.ticketBasicData.nextStepButton)
|
||||||
.waitForURL('data/step-two')
|
.waitForURL('data/step-two')
|
||||||
.parsedUrl();
|
.parsedUrl();
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
order="name"
|
order="name"
|
||||||
auto-load="true">
|
auto-load="true">
|
||||||
</vn-crud-model>
|
</vn-crud-model>
|
||||||
|
|
||||||
<form name="form">
|
<form name="form">
|
||||||
<vn-card pad-large>
|
<vn-card pad-large>
|
||||||
<vn-horizontal>
|
<vn-horizontal>
|
||||||
|
|
|
@ -70,11 +70,11 @@ class Controller {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
set agencyModeId(value) {
|
set agencyModeId(id) {
|
||||||
this.ticket.agencyModeFk = value;
|
if (id != this.ticket.agencyModeFk) {
|
||||||
|
this.ticket.agencyModeFk = id;
|
||||||
if (value)
|
this.onChangeAgencyMode(id);
|
||||||
this.onChangeAgencyMode(value);
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
get zoneId() {
|
get zoneId() {
|
||||||
|
@ -84,11 +84,11 @@ class Controller {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
set zoneId(value) {
|
set zoneId(id) {
|
||||||
this.ticket.zoneFk = value;
|
if (id != this.ticket.zoneFk) {
|
||||||
|
this.ticket.zoneFk = id;
|
||||||
if (value)
|
this.onChangeZone(id);
|
||||||
this.onChangeZone(value);
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -181,6 +181,7 @@ class Controller {
|
||||||
* Gets an agency from an specified zone
|
* Gets an agency from an specified zone
|
||||||
*/
|
*/
|
||||||
onChangeZone(zoneId) {
|
onChangeZone(zoneId) {
|
||||||
|
this.ticket.agencyModeFk = null;
|
||||||
const query = `/api/Zones/${zoneId}`;
|
const query = `/api/Zones/${zoneId}`;
|
||||||
this.$http.get(query).then(res => {
|
this.$http.get(query).then(res => {
|
||||||
if (res.data)
|
if (res.data)
|
||||||
|
@ -204,8 +205,9 @@ class Controller {
|
||||||
this.$http.get(query, {params}).then(res => {
|
this.$http.get(query, {params}).then(res => {
|
||||||
if (res.data)
|
if (res.data)
|
||||||
this.ticket.zoneFk = res.data.id;
|
this.ticket.zoneFk = res.data.id;
|
||||||
else {
|
|
||||||
return this.vnApp.showMessage(
|
if (!res.data) {
|
||||||
|
this.vnApp.showMessage(
|
||||||
this.$translate.instant('No delivery zone available for this parameters')
|
this.$translate.instant('No delivery zone available for this parameters')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,13 @@ describe('Ticket', () => {
|
||||||
|
|
||||||
expect(controller.onChangeClient).toHaveBeenCalledWith(101);
|
expect(controller.onChangeClient).toHaveBeenCalledWith(101);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it(`should not call onChangeClient() method as the ticket doesn't have an ID`, () => {
|
||||||
|
spyOn(controller, 'onChangeClient');
|
||||||
|
controller.ticket = {};
|
||||||
|
|
||||||
|
expect(controller.onChangeClient).not.toHaveBeenCalledWith();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('clientId() setter', () => {
|
describe('clientId() setter', () => {
|
||||||
|
@ -59,7 +66,7 @@ describe('Ticket', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('agencyModeId() setter', () => {
|
describe('agencyModeId() setter', () => {
|
||||||
it('should set agencyModeId property and call onChangeAgencyMode() method ', () => {
|
it('should set agencyModeId property and call onChangeAgencyMode() method', () => {
|
||||||
const agencyModeId = 8;
|
const agencyModeId = 8;
|
||||||
spyOn(controller, 'onChangeAgencyMode');
|
spyOn(controller, 'onChangeAgencyMode');
|
||||||
controller.ticket = {id: 1};
|
controller.ticket = {id: 1};
|
||||||
|
@ -67,6 +74,15 @@ describe('Ticket', () => {
|
||||||
|
|
||||||
expect(controller.onChangeAgencyMode).toHaveBeenCalledWith(agencyModeId);
|
expect(controller.onChangeAgencyMode).toHaveBeenCalledWith(agencyModeId);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should do nothing if attempting to set the same agencyMode id', () => {
|
||||||
|
spyOn(controller, 'onChangeAgencyMode');
|
||||||
|
const agencyModeId = 8;
|
||||||
|
controller.ticket = {agencyModeFk: agencyModeId};
|
||||||
|
controller.agencyModeId = agencyModeId;
|
||||||
|
|
||||||
|
expect(controller.onChangeAgencyMode).not.toHaveBeenCalledWith();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('zoneId() setter', () => {
|
describe('zoneId() setter', () => {
|
||||||
|
@ -78,6 +94,15 @@ describe('Ticket', () => {
|
||||||
|
|
||||||
expect(controller.onChangeZone).toHaveBeenCalledWith(zoneId);
|
expect(controller.onChangeZone).toHaveBeenCalledWith(zoneId);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should do nothing if attempting to set the same zone id', () => {
|
||||||
|
const zoneId = 5;
|
||||||
|
spyOn(controller, 'onChangeZone');
|
||||||
|
controller.ticket = {id: 1, zoneFk: zoneId};
|
||||||
|
controller.zoneId = zoneId;
|
||||||
|
|
||||||
|
expect(controller.onChangeZone).not.toHaveBeenCalledWith(zoneId);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('onChangeClient()', () => {
|
describe('onChangeClient()', () => {
|
||||||
|
@ -165,6 +190,13 @@ describe('Ticket', () => {
|
||||||
describe('onChangeZone()', () => {
|
describe('onChangeZone()', () => {
|
||||||
it('should return an available zone', async() => {
|
it('should return an available zone', async() => {
|
||||||
const zoneId = 5;
|
const zoneId = 5;
|
||||||
|
const landed = new Date();
|
||||||
|
controller._ticket = {
|
||||||
|
id: 1,
|
||||||
|
landed: landed,
|
||||||
|
addressFk: 121,
|
||||||
|
warehouseFk: 1
|
||||||
|
};
|
||||||
|
|
||||||
$httpBackend.when('GET', `/api/Zones/${zoneId}`).respond(200);
|
$httpBackend.when('GET', `/api/Zones/${zoneId}`).respond(200);
|
||||||
$httpBackend.expect('GET', `/api/Zones/${zoneId}`);
|
$httpBackend.expect('GET', `/api/Zones/${zoneId}`);
|
||||||
|
@ -199,6 +231,34 @@ describe('Ticket', () => {
|
||||||
controller.onChangeAgencyMode(agencyModeId);
|
controller.onChangeAgencyMode(agencyModeId);
|
||||||
$httpBackend.flush();
|
$httpBackend.flush();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should throw a user error', async() => {
|
||||||
|
spyOn(controller.vnApp, 'showMessage');
|
||||||
|
const landed = new Date();
|
||||||
|
const agencyModeId = 7;
|
||||||
|
controller._ticket = {
|
||||||
|
id: 1,
|
||||||
|
landed: landed,
|
||||||
|
addressFk: 121,
|
||||||
|
agencyModeFk: agencyModeId,
|
||||||
|
warehouseFk: 1
|
||||||
|
};
|
||||||
|
let params = {
|
||||||
|
landed: landed,
|
||||||
|
addressFk: 121,
|
||||||
|
agencyModeFk: agencyModeId,
|
||||||
|
warehouseFk: 1
|
||||||
|
};
|
||||||
|
|
||||||
|
let serializedParams = $httpParamSerializer(params);
|
||||||
|
$httpBackend.when('GET', `/api/Agencies/getShipped?${serializedParams}`).respond(null);
|
||||||
|
$httpBackend.expect('GET', `/api/Agencies/getShipped?${serializedParams}`);
|
||||||
|
|
||||||
|
controller.onChangeAgencyMode(agencyModeId);
|
||||||
|
$httpBackend.flush();
|
||||||
|
|
||||||
|
expect(controller.vnApp.showMessage).toHaveBeenCalledWith('No delivery zone available for this parameters');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('isFormInvalid()', () => {
|
describe('isFormInvalid()', () => {
|
||||||
|
|
Loading…
Reference in New Issue