fix: put requests
gitea/salix/pipeline/head There was a failure building this commit
Details
gitea/salix/pipeline/head There was a failure building this commit
Details
This commit is contained in:
parent
6359c9e5bf
commit
da1e188983
|
@ -8,6 +8,7 @@
|
|||
},
|
||||
"properties": {
|
||||
"zoneExclusionFk": {
|
||||
"id": true,
|
||||
"type": "number",
|
||||
"required": true
|
||||
},
|
||||
|
|
|
@ -15,6 +15,7 @@ describe('component vnZoneCalendar', () => {
|
|||
controller.zone = {id: 1};
|
||||
controller.days = [];
|
||||
controller.exclusions = [];
|
||||
controller.geoExclusions = [];
|
||||
}));
|
||||
|
||||
describe('date() setter', () => {
|
||||
|
@ -122,7 +123,8 @@ describe('component vnZoneCalendar', () => {
|
|||
$events: [],
|
||||
$exclusions: [],
|
||||
$type: 'day',
|
||||
$weekday: 1
|
||||
$weekday: 1,
|
||||
$geoExclusions: [],
|
||||
}
|
||||
);
|
||||
});
|
||||
|
|
|
@ -6,9 +6,9 @@ class Controller extends Section {
|
|||
constructor($element, $, vnWeekDays) {
|
||||
super($element, $);
|
||||
this.vnWeekDays = vnWeekDays;
|
||||
this.editMode = 'include';
|
||||
this.editMode = 'exclude';
|
||||
this.exclusions;
|
||||
this.days;
|
||||
this.geoExclusions;
|
||||
}
|
||||
|
||||
$onInit() {
|
||||
|
@ -23,6 +23,10 @@ class Controller extends Section {
|
|||
return `Zones/${this.$params.id}/exclusions`;
|
||||
}
|
||||
|
||||
get geoExclusionsPath() {
|
||||
return `Zones/exclusionGeo`;
|
||||
}
|
||||
|
||||
get checked() {
|
||||
const geos = this.$.model.data || [];
|
||||
const checkedLines = [];
|
||||
|
@ -64,57 +68,57 @@ class Controller extends Section {
|
|||
onSelection(days, type, weekday, events, exclusions, geoExclusions) {
|
||||
if (this.editMode == 'include') {
|
||||
if (events.length)
|
||||
this.edit(events[0]);
|
||||
this.editInclusion(events[0]);
|
||||
else
|
||||
this.create(type, days, weekday);
|
||||
this.createInclusion(type, days, weekday);
|
||||
} else {
|
||||
if (geoExclusions.length)
|
||||
this.editExclusion(geoExclusions);
|
||||
else if (exclusions.length)
|
||||
this.editExclusion(exclusions);
|
||||
else
|
||||
this.createExclusion(exclusions, days);
|
||||
this.createExclusion(days);
|
||||
}
|
||||
}
|
||||
|
||||
editExclusion(exclusions) {
|
||||
editExclusion(allTypeExclusions) {
|
||||
this.isNew = false;
|
||||
this.excludeSelected = angular.copy(exclusions[0]);
|
||||
this.exclusions = exclusions;
|
||||
this.excludeSelected = angular.copy(allTypeExclusions[0]);
|
||||
|
||||
if (this.excludeSelected.geoFk)
|
||||
if (this.excludeSelected.geoFk) {
|
||||
this.excludeSelected.type = 'specificLocations';
|
||||
else
|
||||
this.geoExclusions = allTypeExclusions;
|
||||
} else {
|
||||
this.excludeSelected.type = 'all';
|
||||
this.exclusions = allTypeExclusions;
|
||||
}
|
||||
|
||||
this.$.excludeDialog.show();
|
||||
}
|
||||
|
||||
createExclusion(exclusions, days) {
|
||||
createExclusion(days) {
|
||||
this.isNew = true;
|
||||
this.excludeSelected = {
|
||||
type: 'all',
|
||||
dated: days[0]
|
||||
};
|
||||
this.exclusions = exclusions;
|
||||
this.days = days;
|
||||
|
||||
this.geoExclusions = [];
|
||||
this.$.excludeDialog.show();
|
||||
}
|
||||
|
||||
onEditClick(row, event) {
|
||||
if (event.defaultPrevented) return;
|
||||
this.edit(row);
|
||||
this.editInclusion(row);
|
||||
}
|
||||
|
||||
edit(row) {
|
||||
editInclusion(row) {
|
||||
this.isNew = false;
|
||||
this.selected = angular.copy(row);
|
||||
this.selected.wdays = this.vnWeekDays.fromSet(row.weekDays);
|
||||
this.$.includeDialog.show();
|
||||
}
|
||||
|
||||
create(type, days, weekday) {
|
||||
createInclusion(type, days, weekday) {
|
||||
this.isNew = true;
|
||||
|
||||
if (type == 'weekday') {
|
||||
|
@ -173,31 +177,19 @@ class Controller extends Section {
|
|||
}
|
||||
|
||||
onExcludeResponse(response) {
|
||||
const type = this.excludeSelected.type;
|
||||
switch (response) {
|
||||
case 'accept': {
|
||||
let excludeSelected = this.excludeSelected;
|
||||
let type = excludeSelected.type;
|
||||
if (type == 'all')
|
||||
return this.exclusionCreate(this.days);
|
||||
else {
|
||||
const geoIds = [];
|
||||
for (let zoneGeo of this.checked) {
|
||||
geoIds.push({
|
||||
id: zoneGeo.id
|
||||
});
|
||||
}
|
||||
|
||||
const params = {
|
||||
zoneFk: parseInt(this.$params.id),
|
||||
date: this.days[0],
|
||||
geoIds: geoIds
|
||||
};
|
||||
return this.$http.post(`Zones/exclusionGeo`, params)
|
||||
.then(() => this.refresh());
|
||||
}
|
||||
return this.exclusionCreate();
|
||||
else
|
||||
return this.exclusionGeoCreate();
|
||||
}
|
||||
case 'delete':
|
||||
return this.exclusionDelete(this.exclusions);
|
||||
if (type == 'all')
|
||||
return this.exclusionDelete(this.exclusions);
|
||||
if (type == 'specificLocations')
|
||||
return this.exclusionDelete(this.geoExclusions);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -218,13 +210,51 @@ class Controller extends Section {
|
|||
.then(() => this.refresh());
|
||||
}
|
||||
|
||||
exclusionCreate(days) {
|
||||
let exclusions = days.map(dated => {
|
||||
return {dated};
|
||||
});
|
||||
exclusionCreate() {
|
||||
const excludeSelected = this.excludeSelected;
|
||||
const dated = excludeSelected.dated;
|
||||
let req;
|
||||
|
||||
this.$http.post(this.exclusionsPath, exclusions)
|
||||
.then(() => this.refresh());
|
||||
if (this.isNew)
|
||||
req = this.$http.post(this.exclusionsPath, [{dated}]);
|
||||
else
|
||||
req = this.$http.put(`${this.exclusionsPath}/${excludeSelected.id}`, {dated});
|
||||
|
||||
return req.then(() => {
|
||||
this.excludeSelected = null;
|
||||
this.isNew = null;
|
||||
this.refresh();
|
||||
});
|
||||
}
|
||||
|
||||
exclusionGeoCreate() {
|
||||
const excludeSelected = this.excludeSelected;
|
||||
let req;
|
||||
const geoIds = [];
|
||||
for (let zoneGeo of this.checked) {
|
||||
geoIds.push({
|
||||
id: zoneGeo.id
|
||||
});
|
||||
}
|
||||
const params = {
|
||||
zoneFk: parseInt(this.$params.id),
|
||||
date: excludeSelected.dated,
|
||||
geoIds: geoIds
|
||||
};
|
||||
|
||||
console.log(excludeSelected);
|
||||
if (this.isNew)
|
||||
req = this.$http.post(this.geoExclusionsPath, params);
|
||||
else
|
||||
req = this.$http.put(`${this.geoExclusionsPath}/${excludeSelected.zoneExclusionFk}`, params);
|
||||
|
||||
return req.then(() => {
|
||||
this.excludeSelected = null;
|
||||
this.isNew = null;
|
||||
this.refresh();
|
||||
});
|
||||
// return this.$http.post(`Zones/exclusionGeo`, params)
|
||||
// .then(() => this.refresh());
|
||||
}
|
||||
|
||||
exclusionDelete(exclusions) {
|
||||
|
@ -263,8 +293,8 @@ class Controller extends Section {
|
|||
const data = this.$.model.data;
|
||||
|
||||
for (let geo of data) {
|
||||
for (let exclusion of this.exclusions) {
|
||||
if (geo.id == exclusion.geoFk)
|
||||
for (let geoExclusion of this.geoExclusions) {
|
||||
if (geo.id == geoExclusion.geoFk)
|
||||
geo.checked = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,7 +34,8 @@ describe('component vnZoneEvents', () => {
|
|||
const query = `Zones/getEventsFiltered?ended=${date}&started=${date}&zoneFk=${params.zoneFk}`;
|
||||
const response = {
|
||||
events: 'myEvents',
|
||||
exclusions: 'myExclusions'
|
||||
exclusions: 'myExclusions',
|
||||
geoExclusions: 'myGeoExclusions',
|
||||
};
|
||||
$httpBackend.whenGET(query).respond(response);
|
||||
controller.refresh();
|
||||
|
@ -76,38 +77,50 @@ describe('component vnZoneEvents', () => {
|
|||
expect(controller.create).toHaveBeenCalledWith(type, days, weekday);
|
||||
});
|
||||
|
||||
it('should call the exclusionDelete() method', () => {
|
||||
jest.spyOn(controller, 'exclusionDelete').mockReturnThis();
|
||||
// it('should call the exclusionDelete() method', () => {
|
||||
// jest.spyOn(controller, 'exclusionDelete').mockReturnThis();
|
||||
|
||||
const weekday = {};
|
||||
const days = [];
|
||||
const type = 'EventType';
|
||||
const events = [];
|
||||
const exclusions = [{id: 1}];
|
||||
controller.editMode = 'delete';
|
||||
controller.onSelection(days, type, weekday, events, exclusions);
|
||||
// const weekday = {};
|
||||
// const days = [];
|
||||
// const type = 'EventType';
|
||||
// const events = [];
|
||||
// const exclusions = [{id: 1}];
|
||||
// const geoExclusions = [];
|
||||
// controller.editMode = 'delete';
|
||||
// controller.onSelection(days, type, weekday, events, exclusions, geoExclusions);
|
||||
|
||||
expect(controller.exclusionDelete).toHaveBeenCalledWith(exclusions);
|
||||
});
|
||||
// expect(controller.exclusionDelete).toHaveBeenCalledWith(exclusions);
|
||||
// });
|
||||
|
||||
it('should call the exclusionCreate() method', () => {
|
||||
jest.spyOn(controller, 'exclusionCreate').mockReturnThis();
|
||||
|
||||
const weekday = {};
|
||||
const days = [{dated: new Date()}];
|
||||
const type = 'EventType';
|
||||
const events = [];
|
||||
const exclusions = [];
|
||||
controller.editMode = 'delete';
|
||||
controller.onSelection(days, type, weekday, events, exclusions);
|
||||
controller.days = days;
|
||||
controller.excludeSelected = {type: 'all'};
|
||||
controller.onExcludeResponse('accept');
|
||||
|
||||
expect(controller.exclusionCreate).toHaveBeenCalledWith(days);
|
||||
});
|
||||
|
||||
// it('should call the exclusionCreate() method', () => {
|
||||
// jest.spyOn(controller, 'exclusionCreate').mockReturnThis();
|
||||
|
||||
// const weekday = {};
|
||||
// const days = [{dated: new Date()}];
|
||||
// const type = 'EventType';
|
||||
// const events = [];
|
||||
// const exclusions = [];
|
||||
// controller.editMode = 'delete';
|
||||
// controller.onSelection(days, type, weekday, events, exclusions);
|
||||
|
||||
// expect(controller.exclusionCreate).toHaveBeenCalledWith(days);
|
||||
// });
|
||||
});
|
||||
|
||||
describe('create()', () => {
|
||||
it('shoud set the selected property and then call the dialog show() method', () => {
|
||||
controller.$.dialog = {show: jest.fn()};
|
||||
it('shoud set the selected property and then call the includeDialog show() method', () => {
|
||||
controller.$.includeDialog = {show: jest.fn()};
|
||||
|
||||
const type = 'weekday';
|
||||
const days = [new Date()];
|
||||
|
@ -120,11 +133,11 @@ describe('component vnZoneEvents', () => {
|
|||
expect(selection.type).toEqual('indefinitely');
|
||||
expect(firstWeekday).toBeTruthy();
|
||||
expect(controller.isNew).toBeTruthy();
|
||||
expect(controller.$.dialog.show).toHaveBeenCalledWith();
|
||||
expect(controller.$.includeDialog.show).toHaveBeenCalledWith();
|
||||
});
|
||||
|
||||
it('shoud set the selected property with the first day and then call the dialog show() method', () => {
|
||||
controller.$.dialog = {show: jest.fn()};
|
||||
it('shoud set the selected property with the first day and then call the includeDialog show() method', () => {
|
||||
controller.$.includeDialog = {show: jest.fn()};
|
||||
|
||||
const type = 'nonListedType';
|
||||
const days = [new Date()];
|
||||
|
@ -136,7 +149,7 @@ describe('component vnZoneEvents', () => {
|
|||
expect(selection.type).toEqual('day');
|
||||
expect(selection.dated).toEqual(days[0]);
|
||||
expect(controller.isNew).toBeTruthy();
|
||||
expect(controller.$.dialog.show).toHaveBeenCalledWith();
|
||||
expect(controller.$.includeDialog.show).toHaveBeenCalledWith();
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -180,6 +193,45 @@ describe('component vnZoneEvents', () => {
|
|||
});
|
||||
});
|
||||
|
||||
describe('onExcludeResponse()', () => {
|
||||
it('should call the exclusionDelete() method', () => {
|
||||
jest.spyOn(controller, 'exclusionDelete').mockReturnThis();
|
||||
|
||||
const exclusions = [{id: 1}];
|
||||
controller.exclusions = exclusions;
|
||||
controller.onExcludeResponse('delete');
|
||||
|
||||
expect(controller.exclusionDelete).toHaveBeenCalledWith(exclusions);
|
||||
});
|
||||
|
||||
it('shoud make an HTTP POST query to create a new one and then call the refresh() method', () => {
|
||||
jest.spyOn(controller, 'refresh').mockReturnThis();
|
||||
|
||||
controller.selected = {id: 1};
|
||||
controller.isNew = true;
|
||||
|
||||
$httpBackend.when('POST', `Zones/1/events`).respond(200);
|
||||
controller.onExcludeResponse('accept');
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller.refresh).toHaveBeenCalledWith();
|
||||
});
|
||||
|
||||
it('shoud make an HTTP PUT query and then call the refresh() method', () => {
|
||||
jest.spyOn(controller, 'refresh').mockReturnThis();
|
||||
|
||||
controller.selected = {id: 1};
|
||||
controller.isNew = false;
|
||||
|
||||
const eventId = 1;
|
||||
$httpBackend.when('PUT', `Zones/1/events/${eventId}`).respond(200);
|
||||
controller.onExcludeResponse('accept');
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller.refresh).toHaveBeenCalledWith();
|
||||
});
|
||||
});
|
||||
|
||||
describe('onDeleteResponse()', () => {
|
||||
it('shoud make an HTTP DELETE query and then call the refresh() method', () => {
|
||||
jest.spyOn(controller, 'refresh').mockReturnThis();
|
||||
|
|
Loading…
Reference in New Issue