From 2aff5434f6e53c3d2ca1838a2cfb1d816ab09ad7 Mon Sep 17 00:00:00 2001 From: siva kumar Date: Fri, 20 Oct 2017 14:52:29 +0530 Subject: [PATCH] [ADF-1747] Task service - findAllTaskByState return a wrong list. (#2485) * [ADF-1747] Task service - findAllTaskByState return a wrong list. * Refactored findAllTasksWhitoutState method. * [ADF-1747] Task service - findAllTaskByState return a wrong list. * Added unit test case. * [ADF-1747] Task service - findAllTaskByState return a wrong list. * Refactored unit test cases for tasklist.service --- .../src/assets/tasklist-service.mock.ts | 46 +++++++++++++++++++ .../src/services/tasklist.service.spec.ts | 46 +++++++++++++++++++ .../src/services/tasklist.service.ts | 19 ++++---- 3 files changed, 102 insertions(+), 9 deletions(-) diff --git a/ng2-components/ng2-activiti-tasklist/src/assets/tasklist-service.mock.ts b/ng2-components/ng2-activiti-tasklist/src/assets/tasklist-service.mock.ts index 9bca9bae79..36f222b161 100644 --- a/ng2-components/ng2-activiti-tasklist/src/assets/tasklist-service.mock.ts +++ b/ng2-components/ng2-activiti-tasklist/src/assets/tasklist-service.mock.ts @@ -222,3 +222,49 @@ export let fakeFormList = { tenantId: null }] }; + +export let fakeTaskOpen1 = { + id: '1', name: 'FakeOpenTask1', description: null, category: null, + assignee: fakeUser1, + created: '2017-07-15T11:19:17.440+0000', + dueDate: null, + endDate: null + }; + +export let fakeTaskOpen2 = { + id: '1', name: 'FakeOpenTask2', description: null, category: null, + assignee: { id: 1, email: 'fake-open-email@dom.com', firstName: 'firstName', lastName: 'lastName' }, + created: '2017-07-15T11:19:17.440+0000', + dueDate: null, + endDate: null + }; + +export let fakeTaskCompleted1 = { + id: '1', name: 'FakeCompletedTaskName1', description: null, category: null, + assignee: { id: 1, email: 'fake-completed-email@dom.com', firstName: 'firstName', lastName: 'lastName' }, + created: '2016-07-15T11:19:17.440+0000', + dueDate: null, + endDate: '2016-11-03T15:25:42.749+0000' + }; + +export let fakeTaskCompleted2 = { + id: '1', name: 'FakeCompletedTaskName2', description: null, category: null, + assignee: fakeUser1, + created: null, + dueDate: null, + endDate: '2016-11-03T15:25:42.749+0000' + }; + +export let fakeOpenTaskList = { + size: 2, + total: 2, + start: 0, + data: [fakeTaskOpen1, fakeTaskOpen2] +}; + +export let fakeCompletedTaskList = { + size: 2, + total: 2, + start: 0, + data: [fakeTaskCompleted1, fakeTaskCompleted2] +}; diff --git a/ng2-components/ng2-activiti-tasklist/src/services/tasklist.service.spec.ts b/ng2-components/ng2-activiti-tasklist/src/services/tasklist.service.spec.ts index 868f4aed24..a654c65b49 100644 --- a/ng2-components/ng2-activiti-tasklist/src/services/tasklist.service.spec.ts +++ b/ng2-components/ng2-activiti-tasklist/src/services/tasklist.service.spec.ts @@ -22,10 +22,12 @@ import { AppConfigServiceMock } from '../assets/app-config.service.mock'; import { fakeAppFilter, fakeAppPromise, + fakeCompletedTaskList, fakeErrorTaskList, fakeFilter, fakeFilters, fakeFormList, + fakeOpenTaskList, fakeRepresentationFilter1, fakeRepresentationFilter2, fakeTaskDetails, @@ -333,6 +335,50 @@ describe('Activiti TaskList Service', () => { ); }); + it('Should return both open and completed task', (done) => { + spyOn(service, 'findTasksByState').and.returnValue(Observable.of(fakeOpenTaskList)); + spyOn(service, 'findAllTaskByState').and.returnValue(Observable.of(fakeCompletedTaskList)); + service.findAllTasksWhitoutState( fakeFilter).subscribe( + res => { + expect(res).toBeDefined(); + expect(res.data).toBeDefined(); + expect(res.data.length).toEqual(4); + expect(res.data[0].name).toEqual('FakeOpenTask1'); + expect(res.data[1].assignee.email).toEqual('fake-open-email@dom.com'); + expect(res.data[2].name).toEqual('FakeCompletedTaskName1'); + expect(res.data[2].assignee.email).toEqual('fake-completed-email@dom.com'); + expect(res.data[3].name).toEqual('FakeCompletedTaskName2'); + done(); + } + ); + }); + + it('should add the task list to the tasklistSubject with all tasks filtered without state', (done) => { + spyOn(service, 'getTasks').and.returnValue(Observable.of(fakeTaskList)); + spyOn(service, 'getTotalTasks').and.returnValue(Observable.of(fakeTaskList)); + + service.tasksList$.subscribe( + (res) => { + expect(res).toBeDefined(); + expect(res.data).toBeDefined(); + expect(res.data.length).toEqual(2); + expect(res.data[0].name).toEqual('FakeNameTask'); + expect(res.data[1].assignee.email).toEqual('fake-email@dom.com'); + }); + service.findAllTasksWhitoutState( fakeFilter).subscribe( + res => { + expect(res).toBeDefined(); + expect(res.data).toBeDefined(); + expect(res.data.length).toEqual(2); + expect(res.data[0].name).toEqual('FakeNameTask'); + expect(res.data[0].assignee.email).toEqual('fake-email@dom.com'); + expect(res.data[1].name).toEqual('FakeNameTask'); + expect(res.data[1].assignee.email).toEqual('fake-email@dom.com'); + done(); + } + ); + }); + it('should return the task details ', (done) => { service.getTaskDetails('999').subscribe( (res: TaskDetailsModel) => { diff --git a/ng2-components/ng2-activiti-tasklist/src/services/tasklist.service.ts b/ng2-components/ng2-activiti-tasklist/src/services/tasklist.service.ts index 85a644b519..2432e0d5ba 100644 --- a/ng2-components/ng2-activiti-tasklist/src/services/tasklist.service.ts +++ b/ng2-components/ng2-activiti-tasklist/src/services/tasklist.service.ts @@ -163,15 +163,16 @@ export class TaskListService { */ findAllTasksWhitoutState(requestNode: TaskQueryRequestRepresentationModel): Observable { return Observable.forkJoin( - this.findTasksByState(requestNode, 'open'), - this.findAllTaskByState(requestNode, 'completed'), - (activeTasks: TaskListModel, completedTasks: TaskListModel) => { - const tasks = Object.assign({}, activeTasks); - tasks.total += completedTasks.total; - tasks.data = tasks.data.concat(completedTasks.data); - return tasks; - } - ); + this.findTasksByState(requestNode, 'open'), + this.findAllTaskByState(requestNode, 'completed'), + (activeTasks: TaskListModel, completedTasks: TaskListModel) => { + const tasks = Object.assign({}, activeTasks); + tasks.total += completedTasks.total; + tasks.data = tasks.data.concat(completedTasks.data); + this.tasksListSubject.next(tasks); + return tasks; + } + ); } /**