From 7ed02f6716a40942eb605a2c92738ee3b15cf3ab Mon Sep 17 00:00:00 2001 From: Silviu Popa Date: Thu, 1 Oct 2020 13:10:15 +0300 Subject: [PATCH] [ACA-3010] - Process/Task Cloud fix wrong date range (#6192) * [ACA-3010] - Process/Task Cloud fix wrong date range * fix e2e * fix unit test and disable false positive e2e tests Co-authored-by: Silviu Popa --- .../task-list-properties.e2e.ts | 2 +- e2e/protractor.excludes.json | 4 ++- .../date-range-filter.component.spec.ts | 4 +-- .../date-range-filter.component.ts | 4 +-- .../date-range-filter.service.spec.ts | 27 +++++++-------- .../date-range-filter.service.ts | 30 ++++++++-------- .../src/lib/models/date-cloud-filter.model.ts | 4 +-- ...dit-process-filter-cloud.component.spec.ts | 16 ++++----- .../edit-process-filter-cloud.component.ts | 4 +-- .../models/process-filter-cloud.model.ts | 4 +-- .../base-edit-task-filter-cloud.component.ts | 6 ++-- .../edit-task-filter-cloud.component.spec.ts | 34 +++++++++---------- .../edit-task-filter-cloud.component.ts | 2 +- .../task-filters/models/filter-cloud.model.ts | 8 ++--- 14 files changed, 73 insertions(+), 76 deletions(-) diff --git a/e2e/process-services-cloud/task-list-properties.e2e.ts b/e2e/process-services-cloud/task-list-properties.e2e.ts index cb374d1c18..07d22704ed 100644 --- a/e2e/process-services-cloud/task-list-properties.e2e.ts +++ b/e2e/process-services-cloud/task-list-properties.e2e.ts @@ -219,7 +219,7 @@ describe('Edit task filters and task list properties', () => { await tasksCloudDemoPage.editTaskFilterCloudComponent().setLastModifiedFrom(beforeDate); await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(createdTask.entry.name); - await tasksCloudDemoPage.editTaskFilterCloudComponent().setLastModifiedTo(afterDate); + await tasksCloudDemoPage.editTaskFilterCloudComponent().setLastModifiedFrom(afterDate); await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(createdTask.entry.name); }); diff --git a/e2e/protractor.excludes.json b/e2e/protractor.excludes.json index fe1aead005..5a8e9e7610 100644 --- a/e2e/protractor.excludes.json +++ b/e2e/protractor.excludes.json @@ -6,5 +6,7 @@ "C260051": "login problem APS not basic", "C279932": "login problem APS not basic", "C279931": "login problem APS not basic", - "C279930": "login problem APS not basic" + "C279930": "login problem APS not basic", + "C297690": "https://issues.alfresco.com/jira/browse/ADF-5261", + "C297689": "https://issues.alfresco.com/jira/browse/ADF-5261" } diff --git a/lib/process-services-cloud/src/lib/common/date-range-filter/date-range-filter.component.spec.ts b/lib/process-services-cloud/src/lib/common/date-range-filter/date-range-filter.component.spec.ts index 3cdd24ddc2..1d1db08f8d 100644 --- a/lib/process-services-cloud/src/lib/common/date-range-filter/date-range-filter.component.spec.ts +++ b/lib/process-services-cloud/src/lib/common/date-range-filter/date-range-filter.component.spec.ts @@ -82,8 +82,8 @@ describe('DateRangeFilterComponent', () => { it('should return correct date when any type is selected', () => { const expectedDate = { - startDate: moment().endOf('day').toDate(), - endDate: moment().add(1, 'days').startOf('day').toDate() + startDate: moment().endOf('day').toISOString(true), + endDate: moment().add(1, 'days').startOf('day').toISOString(true) }; expect(service.getDateRange(DateCloudFilterType.TOMORROW)).toEqual(expectedDate); }); diff --git a/lib/process-services-cloud/src/lib/common/date-range-filter/date-range-filter.component.ts b/lib/process-services-cloud/src/lib/common/date-range-filter/date-range-filter.component.ts index 70ebe4700b..ecc27da052 100644 --- a/lib/process-services-cloud/src/lib/common/date-range-filter/date-range-filter.component.ts +++ b/lib/process-services-cloud/src/lib/common/date-range-filter/date-range-filter.component.ts @@ -68,8 +68,8 @@ import moment from 'moment-es6'; onDateRangeClosed() { const dateRange = { - startDate: this.dateRangeForm.controls.from.value, - endDate: this.dateRangeForm.controls.to.value + startDate: moment(this.dateRangeForm.controls.from.value).startOf('day').toISOString(true), + endDate: moment(this.dateRangeForm.controls.to.value).endOf('day').toISOString(true) }; this.dateChanged.emit(dateRange); } diff --git a/lib/process-services-cloud/src/lib/common/date-range-filter/date-range-filter.service.spec.ts b/lib/process-services-cloud/src/lib/common/date-range-filter/date-range-filter.service.spec.ts index a925ad528a..1fc829e95c 100644 --- a/lib/process-services-cloud/src/lib/common/date-range-filter/date-range-filter.service.spec.ts +++ b/lib/process-services-cloud/src/lib/common/date-range-filter/date-range-filter.service.spec.ts @@ -30,35 +30,32 @@ describe('Date Range Filter service', () => { it('should return today range', () => { const expectedDate = { - startDate: moment().startOf('day').toDate(), - endDate: moment().endOf('day').toDate() + startDate: moment().startOf('day').toISOString(true), + endDate: moment().endOf('day').toISOString(true) }; expect(service.getDateRange(DateCloudFilterType.TODAY)).toEqual(expectedDate); }); it('should return month range', () => { const expectedDate = { - startDate: moment().startOf('month').toDate(), - endDate: moment().endOf('month').toDate() + startDate: moment().startOf('month').toISOString(true), + endDate: moment().endOf('month').toISOString(true) }; expect(service.getDateRange(DateCloudFilterType.MONTH)).toEqual(expectedDate); }); it('should return year range', () => { const expectedDate = { - startDate: moment().startOf('year').toDate(), - endDate: moment().endOf('year').toDate() + startDate: moment().startOf('year').toISOString(true), + endDate: moment().endOf('year').toISOString(true) }; expect(service.getDateRange(DateCloudFilterType.YEAR)).toEqual(expectedDate); }); it('should return quarter range', () => { - const currentDate = new Date(); - const quarter = Math.floor((currentDate.getMonth() / 3)); - const firstDate = new Date(currentDate.getFullYear(), quarter * 3, 1); const expectedDate = { - startDate: firstDate, - endDate: new Date(firstDate.getFullYear(), firstDate.getMonth() + 3, 0) + startDate: moment().startOf('quarter').toISOString(true), + endDate: moment().endOf('quarter').toISOString(true) }; expect(service.getDateRange(DateCloudFilterType.QUARTER)).toEqual(expectedDate); }); @@ -73,16 +70,16 @@ describe('Date Range Filter service', () => { it('should return tomorow range', () => { const expectedDate = { - startDate: moment().endOf('day').toDate(), - endDate: moment().add(1, 'days').startOf('day').toDate() + startDate: moment().endOf('day').toISOString(true), + endDate: moment().add(1, 'days').startOf('day').toISOString(true) }; expect(service.getDateRange(DateCloudFilterType.TOMORROW)).toEqual(expectedDate); }); it('should return next 7 days range', () => { const expectedDate = { - startDate: moment().startOf('day').toDate(), - endDate: moment().add(7, 'days').endOf('day').toDate() + startDate: moment().startOf('day').toISOString(true), + endDate: moment().add(7, 'days').endOf('day').toISOString(true) }; expect(service.getDateRange(DateCloudFilterType.NEXT_7_DAYS)).toEqual(expectedDate); }); diff --git a/lib/process-services-cloud/src/lib/common/date-range-filter/date-range-filter.service.ts b/lib/process-services-cloud/src/lib/common/date-range-filter/date-range-filter.service.ts index e80abfa761..d9e436b002 100644 --- a/lib/process-services-cloud/src/lib/common/date-range-filter/date-range-filter.service.ts +++ b/lib/process-services-cloud/src/lib/common/date-range-filter/date-range-filter.service.ts @@ -52,52 +52,50 @@ export class DateRangeFilterService { private getNext7DaysDateRange(): DateRangeFilter { return { - startDate: moment().startOf('day').toDate(), - endDate: moment().add(7, 'days').endOf('day').toDate() + startDate: moment().startOf('day').toISOString(true), + endDate: moment().add(7, 'days').endOf('day').toISOString(true) }; } private getTomorrowDateRange(): DateRangeFilter { return { - startDate: moment().endOf('day').toDate(), - endDate: moment().add(1, 'days').startOf('day').toDate() + startDate: moment().endOf('day').toISOString(true), + endDate: moment().add(1, 'days').startOf('day').toISOString(true) }; } private getCurrentYearDateRange(): DateRangeFilter { return { - startDate: moment().startOf('year').toDate(), - endDate: moment().endOf('year').toDate() + startDate: moment().startOf('year').toISOString(true), + endDate: moment().endOf('year').toISOString(true) }; } private getTodayDateRange(): DateRangeFilter { return { - startDate: moment().startOf('day').toDate(), - endDate: moment().endOf('day').toDate() + startDate: moment().startOf('day').toISOString(true), + endDate: moment().endOf('day').toISOString(true) }; } private getCurrentWeekRange(): DateRangeFilter { return { - startDate: moment().startOf('week').toDate(), - endDate: moment().endOf('week').toDate() + startDate: moment().startOf('week').toISOString(true), + endDate: moment().endOf('week').toISOString(true) }; } private getCurrentMonthDateRange(): DateRangeFilter { return { - startDate: moment().startOf('month').toDate(), - endDate: moment().endOf('month').toDate() + startDate: moment().startOf('month').toISOString(true), + endDate: moment().endOf('month').toISOString(true) }; } private getQuarterDateRange(): DateRangeFilter { - const quarter = Math.floor((this.currentDate.getMonth() / 3)); - const firstDate = new Date(this.currentDate.getFullYear(), quarter * 3, 1); return { - startDate: firstDate, - endDate: new Date(firstDate.getFullYear(), firstDate.getMonth() + 3, 0) + startDate: moment().startOf('quarter').toISOString(true), + endDate: moment().endOf('quarter').toISOString(true) }; } } diff --git a/lib/process-services-cloud/src/lib/models/date-cloud-filter.model.ts b/lib/process-services-cloud/src/lib/models/date-cloud-filter.model.ts index 72eb2977ba..228a802a92 100644 --- a/lib/process-services-cloud/src/lib/models/date-cloud-filter.model.ts +++ b/lib/process-services-cloud/src/lib/models/date-cloud-filter.model.ts @@ -28,8 +28,8 @@ export enum DateCloudFilterType { } export interface DateRangeFilter { - startDate: Date; - endDate: Date; + startDate: string; + endDate: string; } export interface RangeKeys { from: string; diff --git a/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter-cloud.component.spec.ts index 8065aae60d..1bea0c4de4 100644 --- a/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter-cloud.component.spec.ts +++ b/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter-cloud.component.spec.ts @@ -793,13 +793,13 @@ describe('EditProcessFilterCloudComponent', () => { const startedDateTypeControl: AbstractControl = component.editProcessFilterForm.get('completedDateType'); startedDateTypeControl.setValue(DateCloudFilterType.TODAY); const dateFilter = { - startFrom: moment().startOf('day').toDate(), - startTo: moment().endOf('day').toDate() + startFrom: moment().startOf('day').toISOString(true), + startTo: moment().endOf('day').toISOString(true) }; component.filterChange.subscribe(() => { - expect(component.changedProcessFilter.completedFrom).toEqual(dateFilter.startFrom.toISOString()); - expect(component.changedProcessFilter.completedTo).toEqual(dateFilter.startTo.toISOString()); + expect(component.changedProcessFilter.completedFrom).toEqual(dateFilter.startFrom); + expect(component.changedProcessFilter.completedTo).toEqual(dateFilter.startTo); done(); }); component.onFilterChange(); @@ -813,8 +813,8 @@ describe('EditProcessFilterCloudComponent', () => { fixture.detectChanges(); const dateFilter = { - startDate: moment().startOf('day').toDate(), - endDate: moment().endOf('day').toDate() + startDate: moment().startOf('day').toISOString(true), + endDate: moment().endOf('day').toISOString(true) }; const startedDateTypeControl: AbstractControl = component.editProcessFilterForm.get('completedDateType'); @@ -834,8 +834,8 @@ describe('EditProcessFilterCloudComponent', () => { fixture.detectChanges(); component.filterChange.subscribe(() => { - expect(component.changedProcessFilter.completedFrom).toEqual(dateFilter.startDate.toISOString()); - expect(component.changedProcessFilter.completedTo).toEqual(dateFilter.endDate.toISOString()); + expect(component.changedProcessFilter.completedFrom).toEqual(dateFilter.startDate); + expect(component.changedProcessFilter.completedTo).toEqual(dateFilter.endDate); done(); }); component.onFilterChange(); diff --git a/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter-cloud.component.ts b/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter-cloud.component.ts index 05da1e7463..2ce90d87bc 100644 --- a/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter-cloud.component.ts +++ b/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter-cloud.component.ts @@ -326,10 +326,10 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes onDateRangeFilterChanged(dateRange: DateRangeFilter, property: ProcessFilterProperties) { this.editProcessFilterForm.get(property.attributes?.from).setValue( - dateRange.startDate ? dateRange.startDate.toISOString() : null + dateRange.startDate ? dateRange.startDate : null ); this.editProcessFilterForm.get(property.attributes?.to).setValue( - dateRange.endDate ? dateRange.endDate.toISOString() : null + dateRange.endDate ? dateRange.endDate : null ); } diff --git a/lib/process-services-cloud/src/lib/process/process-filters/models/process-filter-cloud.model.ts b/lib/process-services-cloud/src/lib/process/process-filters/models/process-filter-cloud.model.ts index 641c6b7756..fc30d6553a 100644 --- a/lib/process-services-cloud/src/lib/process/process-filters/models/process-filter-cloud.model.ts +++ b/lib/process-services-cloud/src/lib/process/process-filters/models/process-filter-cloud.model.ts @@ -127,11 +127,11 @@ export class ProcessFilterCloudModel { } private getStartDate(key: DateCloudFilterType) { - return this.dateRangeFilterService.getDateRange(key).startDate?.toISOString(); + return this.dateRangeFilterService.getDateRange(key).startDate; } private getEndDate(key: DateCloudFilterType) { - return this.dateRangeFilterService.getDateRange(key).endDate?.toISOString(); + return this.dateRangeFilterService.getDateRange(key).endDate; } private isDateRangeType(type: DateCloudFilterType) { diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.ts b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.ts index 08ab45d7ca..55abebdc0e 100644 --- a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.ts +++ b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.ts @@ -275,7 +275,7 @@ export abstract class BaseEditTaskFilterCloudComponent implements OnInit, OnChan const momentDate = moment(newDateValue, BaseEditTaskFilterCloudComponent.FORMAT_DATE, true); if (momentDate.isValid()) { - this.getPropertyController(dateProperty).setValue(momentDate.toDate()); + this.getPropertyController(dateProperty).setValue(momentDate.toISOString(true)); this.getPropertyController(dateProperty).setErrors(null); } else { this.getPropertyController(dateProperty).setErrors({ invalid: true }); @@ -285,10 +285,10 @@ export abstract class BaseEditTaskFilterCloudComponent implements OnInit, OnChan onDateRangeFilterChanged(dateRange: DateRangeFilter, property: TaskFilterProperties) { this.editTaskFilterForm.get(property.attributes?.from).setValue( - dateRange.startDate ? dateRange.startDate.toISOString() : null + dateRange.startDate ? dateRange.startDate : null ); this.editTaskFilterForm.get(property.attributes?.to).setValue( - dateRange.endDate ? dateRange.endDate.toISOString() : null + dateRange.endDate ? dateRange.endDate : null ); } diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-task-filter-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-task-filter-cloud.component.spec.ts index 9e1e4e3a6a..333d537458 100644 --- a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-task-filter-cloud.component.spec.ts +++ b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-task-filter-cloud.component.spec.ts @@ -481,13 +481,13 @@ describe('EditTaskFilterCloudComponent', () => { const startedDateTypeControl: AbstractControl = component.editTaskFilterForm.get('dueDateType'); startedDateTypeControl.setValue(DateCloudFilterType.TODAY); const dateFilter = { - startFrom: moment().startOf('day').toDate(), - startTo: moment().endOf('day').toDate() + startFrom: moment().startOf('day').toISOString(true), + startTo: moment().endOf('day').toISOString(true) }; component.filterChange.subscribe(() => { - expect(component.changedTaskFilter.dueDateFrom).toEqual(dateFilter.startFrom.toISOString()); - expect(component.changedTaskFilter.dueDateTo).toEqual(dateFilter.startTo.toISOString()); + expect(component.changedTaskFilter.dueDateFrom).toEqual(dateFilter.startFrom); + expect(component.changedTaskFilter.dueDateTo).toEqual(dateFilter.startTo); done(); }); component.onFilterChange(); @@ -501,8 +501,8 @@ describe('EditTaskFilterCloudComponent', () => { fixture.detectChanges(); const dateFilter = { - startDate: moment().startOf('day').toDate(), - endDate: moment().endOf('day').toDate() + startDate: moment().startOf('day').toISOString(true), + endDate: moment().endOf('day').toISOString(true) }; const startedDateTypeControl: AbstractControl = component.editTaskFilterForm.get('dueDateType'); @@ -522,8 +522,8 @@ describe('EditTaskFilterCloudComponent', () => { fixture.detectChanges(); component.filterChange.subscribe(() => { - expect(component.changedTaskFilter.dueDateFrom).toEqual(dateFilter.startDate.toISOString()); - expect(component.changedTaskFilter.dueDateTo).toEqual(dateFilter.endDate.toISOString()); + expect(component.changedTaskFilter.dueDateFrom).toEqual(dateFilter.startDate); + expect(component.changedTaskFilter.dueDateTo).toEqual(dateFilter.endDate); done(); }); component.onFilterChange(); @@ -539,13 +539,13 @@ describe('EditTaskFilterCloudComponent', () => { const startedDateTypeControl: AbstractControl = component.editTaskFilterForm.get('completedDateType'); startedDateTypeControl.setValue(DateCloudFilterType.TODAY); const dateFilter = { - startFrom: moment().startOf('day').toDate(), - startTo: moment().endOf('day').toDate() + startFrom: moment().startOf('day').toISOString(true), + startTo: moment().endOf('day').toISOString(true) }; component.filterChange.subscribe(() => { - expect(component.changedTaskFilter.completedFrom).toEqual(dateFilter.startFrom.toISOString()); - expect(component.changedTaskFilter.completedTo).toEqual(dateFilter.startTo.toISOString()); + expect(component.changedTaskFilter.completedFrom).toEqual(dateFilter.startFrom); + expect(component.changedTaskFilter.completedTo).toEqual(dateFilter.startTo); done(); }); component.onFilterChange(); @@ -559,8 +559,8 @@ describe('EditTaskFilterCloudComponent', () => { fixture.detectChanges(); const dateFilter = { - startDate: moment().startOf('day').toDate(), - endDate: moment().endOf('day').toDate() + startDate: moment().startOf('day').toISOString(true), + endDate: moment().endOf('day').toISOString(true) }; const startedDateTypeControl: AbstractControl = component.editTaskFilterForm.get('completedDateType'); @@ -580,8 +580,8 @@ describe('EditTaskFilterCloudComponent', () => { fixture.detectChanges(); component.filterChange.subscribe(() => { - expect(component.changedTaskFilter.completedFrom).toEqual(dateFilter.startDate.toISOString()); - expect(component.changedTaskFilter.completedTo).toEqual(dateFilter.endDate.toISOString()); + expect(component.changedTaskFilter.completedFrom).toEqual(dateFilter.startDate); + expect(component.changedTaskFilter.completedTo).toEqual(dateFilter.endDate); done(); }); component.onFilterChange(); @@ -718,7 +718,7 @@ describe('EditTaskFilterCloudComponent', () => { component.filterChange.subscribe(() => { if (component.changedTaskFilter instanceof TaskFilterCloudModel) { - expect(component.changedTaskFilter.lastModifiedTo.toISOString()).toEqual(lastModifiedToFilter.toISOString()); + expect(component.changedTaskFilter.lastModifiedTo).toEqual(lastModifiedToFilter.toISOString(true)); } done(); }); diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-task-filter-cloud.component.ts b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-task-filter-cloud.component.ts index ebef0d6da8..74db85a97e 100644 --- a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-task-filter-cloud.component.ts +++ b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-task-filter-cloud.component.ts @@ -118,7 +118,7 @@ export class EditTaskFilterCloudComponent extends BaseEditTaskFilterCloudCompone minute: 59, second: 59 }); - formValues.lastModifiedTo = lastModifiedToFilterValue.toDate(); + formValues.lastModifiedTo = lastModifiedToFilterValue.toISOString(true); } } diff --git a/lib/process-services-cloud/src/lib/task/task-filters/models/filter-cloud.model.ts b/lib/process-services-cloud/src/lib/task/task-filters/models/filter-cloud.model.ts index 5fcfc5695a..57f514341d 100644 --- a/lib/process-services-cloud/src/lib/task/task-filters/models/filter-cloud.model.ts +++ b/lib/process-services-cloud/src/lib/task/task-filters/models/filter-cloud.model.ts @@ -42,9 +42,9 @@ export class TaskFilterCloudModel { parentTaskId: string; priority: number; standalone: boolean; - lastModifiedFrom: Date; - lastModifiedTo: Date; completedBy: string; + lastModifiedFrom: string; + lastModifiedTo: string; completedDateType: DateCloudFilterType; completedDate: Date; @@ -135,11 +135,11 @@ export class TaskFilterCloudModel { } private getStartDate(key: DateCloudFilterType) { - return this.dateRangeFilterService.getDateRange(key).startDate?.toISOString(); + return this.dateRangeFilterService.getDateRange(key).startDate; } private getEndDate(key: DateCloudFilterType) { - return this.dateRangeFilterService.getDateRange(key).endDate?.toISOString(); + return this.dateRangeFilterService.getDateRange(key).endDate; } private isDateRangeType(type: DateCloudFilterType) {