From a6edfd98c1d83cf2cb2a65cd77e9c039872758c6 Mon Sep 17 00:00:00 2001 From: siva kumar Date: Mon, 23 Nov 2020 16:58:32 +0530 Subject: [PATCH] [AAE-4127] [process-services] [APS1] Return Create Filters API response instead of the default payload (#6370) * [AAE-4127] [process-services] [APS1] Return Create Filters API response instead of the default payload * * Added unit tests --- .../services/process-filter.service.spec.ts | 43 +++++++++++++++ .../services/process-filter.service.ts | 9 +-- .../services/task-filter.service.spec.ts | 55 +++++++++++++++++++ .../task-list/services/task-filter.service.ts | 12 ++-- 4 files changed, 105 insertions(+), 14 deletions(-) diff --git a/lib/process-services/src/lib/process-list/services/process-filter.service.spec.ts b/lib/process-services/src/lib/process-list/services/process-filter.service.spec.ts index fda301a781..fc31831bdf 100644 --- a/lib/process-services/src/lib/process-list/services/process-filter.service.spec.ts +++ b/lib/process-services/src/lib/process-list/services/process-filter.service.spec.ts @@ -143,6 +143,49 @@ describe('Process filter', () => { }); }); + it('should be able create filters and add sorting information to the response', (done) => { + service.createDefaultFilters(1234).subscribe((res: FilterProcessRepresentationModel []) => { + expect(res).toBeDefined(); + expect(res.length).toEqual(3); + expect(res[0].name).toEqual('Running'); + expect(res[0].filter.sort).toEqual('created-desc'); + expect(res[0].filter.state).toEqual('running'); + + expect(res[1].name).toEqual('Completed'); + expect(res[1].filter.sort).toEqual('created-desc'); + expect(res[1].filter.state).toEqual('completed'); + + expect(res[2].name).toEqual('All'); + expect(res[2].filter.sort).toEqual('created-desc'); + expect(res[2].filter.state).toEqual('all'); + done(); + }); + + jasmine.Ajax.requests.at(0).respondWith({ + 'status': 200, + contentType: 'application/json', + responseText: JSON.stringify({ + appId: 1001, id: 111, name: 'Running', icon: 'fake-icon', recent: false + }) + }); + + jasmine.Ajax.requests.at(1).respondWith({ + 'status': 200, + contentType: 'application/json', + responseText: JSON.stringify({ + appId: 1001, id: 222, name: 'Completed', icon: 'fake-icon', recent: false + }) + }); + + jasmine.Ajax.requests.at(2).respondWith({ + 'status': 200, + contentType: 'application/json', + responseText: JSON.stringify({ + appId: 1001, id: 333, name: 'All', icon: 'fake-icon', recent: false + }) + }); + }); + it('should pass on any error that is returned by the API', async(() => { getFilters = getFilters.and.returnValue(Promise.reject(mockError)); diff --git a/lib/process-services/src/lib/process-list/services/process-filter.service.ts b/lib/process-services/src/lib/process-list/services/process-filter.service.ts index dc605104a1..6fe6ffb9ce 100644 --- a/lib/process-services/src/lib/process-list/services/process-filter.service.ts +++ b/lib/process-services/src/lib/process-list/services/process-filter.service.ts @@ -108,14 +108,11 @@ export class ProcessFilterService { const filters: FilterProcessRepresentationModel[] = []; res.forEach((filter) => { if (filter.name === runningFilter.name) { - runningFilter.id = filter.id; - filters.push(runningFilter); + filters.push(new FilterProcessRepresentationModel({ ...filter, filter: runningFilter.filter, appId })); } else if (filter.name === completedFilter.name) { - completedFilter.id = filter.id; - filters.push(completedFilter); + filters.push(new FilterProcessRepresentationModel({ ...filter, filter: completedFilter.filter, appId })); } else if (filter.name === allFilter.name) { - allFilter.id = filter.id; - filters.push(allFilter); + filters.push(new FilterProcessRepresentationModel({ ...filter, filter: allFilter.filter, appId })); } }); observer.next(filters); diff --git a/lib/process-services/src/lib/task-list/services/task-filter.service.spec.ts b/lib/process-services/src/lib/task-list/services/task-filter.service.spec.ts index 559b5b0d65..2a24de5cd3 100644 --- a/lib/process-services/src/lib/task-list/services/task-filter.service.spec.ts +++ b/lib/process-services/src/lib/task-list/services/task-filter.service.spec.ts @@ -174,6 +174,61 @@ describe('Activiti Task filter Service', () => { }); }); + it('should be able create filters and add sorting information to the response', (done) => { + service.createDefaultFilters(1234).subscribe((res: FilterRepresentationModel []) => { + expect(res).toBeDefined(); + expect(res.length).toEqual(4); + expect(res[0].name).toEqual('My Tasks'); + expect(res[0].filter.sort).toEqual('created-desc'); + expect(res[0].filter.assignment).toEqual('assignee'); + + expect(res[1].name).toEqual('Involved Tasks'); + expect(res[1].filter.sort).toEqual('created-desc'); + expect(res[1].filter.assignment).toEqual('involved'); + + expect(res[2].name).toEqual('Queued Tasks'); + expect(res[2].filter.sort).toEqual('created-desc'); + expect(res[2].filter.assignment).toEqual('candidate'); + + expect(res[3].name).toEqual('Completed Tasks'); + expect(res[3].filter.sort).toEqual('created-desc'); + expect(res[3].filter.assignment).toEqual('involved'); + done(); + }); + + jasmine.Ajax.requests.at(0).respondWith({ + 'status': 200, + contentType: 'application/json', + responseText: JSON.stringify({ + appId: 1001, id: 111, name: 'My Tasks', icon: 'fake-icon', recent: false + }) + }); + + jasmine.Ajax.requests.at(1).respondWith({ + 'status': 200, + contentType: 'application/json', + responseText: JSON.stringify({ + appId: 1001, id: 222, name: 'Involved Tasks', icon: 'fake-icon', recent: false + }) + }); + + jasmine.Ajax.requests.at(2).respondWith({ + 'status': 200, + contentType: 'application/json', + responseText: JSON.stringify({ + appId: 1001, id: 333, name: 'Queued Tasks', icon: 'fake-icon', recent: false + }) + }); + + jasmine.Ajax.requests.at(3).respondWith({ + 'status': 200, + contentType: 'application/json', + responseText: JSON.stringify({ + appId: 1001, id: 444, name: 'Completed Tasks', icon: 'fake-icon', recent: false + }) + }); + }); + it('should add a filter', (done) => { const filterFake = new FilterRepresentationModel({ name: 'FakeNameFilter', diff --git a/lib/process-services/src/lib/task-list/services/task-filter.service.ts b/lib/process-services/src/lib/task-list/services/task-filter.service.ts index e749176772..7ece826ac8 100644 --- a/lib/process-services/src/lib/task-list/services/task-filter.service.ts +++ b/lib/process-services/src/lib/task-list/services/task-filter.service.ts @@ -60,17 +60,13 @@ export class TaskFilterService { const filters: FilterRepresentationModel[] = []; res.forEach((filter) => { if (filter.name === involvedTasksFilter.name) { - involvedTasksFilter.id = filter.id; - filters.push(involvedTasksFilter); + filters.push(new FilterRepresentationModel({ ...filter, filter: involvedTasksFilter.filter, appId })); } else if (filter.name === myTasksFilter.name) { - myTasksFilter.id = filter.id; - filters.push(myTasksFilter); + filters.push(new FilterRepresentationModel({ ...filter, filter: myTasksFilter.filter, appId })); } else if (filter.name === queuedTasksFilter.name) { - queuedTasksFilter.id = filter.id; - filters.push(queuedTasksFilter); + filters.push(new FilterRepresentationModel({ ...filter, filter: queuedTasksFilter.filter, appId })); } else if (filter.name === completedTasksFilter.name) { - completedTasksFilter.id = filter.id; - filters.push(completedTasksFilter); + filters.push(new FilterRepresentationModel({ ...filter, filter: completedTasksFilter.filter, appId })); } }); observer.next(filters);