From 2fff4d038e7588c63b79c5134e1fbf27388c8522 Mon Sep 17 00:00:00 2001 From: Maurizio Vitale Date: Wed, 11 Oct 2017 13:46:41 +0100 Subject: [PATCH] Remove processDefinitionKey from Process Model (#2459) --- .../src/assets/process.model.mock.ts | 83 +++++++++++++++++++ .../src/assets/process.service.mock.ts | 2 +- .../components/processlist.component.spec.ts | 16 ---- .../src/components/processlist.component.ts | 3 +- .../models/process-instance-filter.model.ts | 2 - .../src/services/process.service.spec.ts | 14 +++- .../src/services/process.service.ts | 6 +- 7 files changed, 101 insertions(+), 25 deletions(-) diff --git a/ng2-components/ng2-activiti-processlist/src/assets/process.model.mock.ts b/ng2-components/ng2-activiti-processlist/src/assets/process.model.mock.ts index 531545a8a2..c3bbe06e33 100644 --- a/ng2-components/ng2-activiti-processlist/src/assets/process.model.mock.ts +++ b/ng2-components/ng2-activiti-processlist/src/assets/process.model.mock.ts @@ -76,3 +76,86 @@ export let exampleProcessNoName = new ProcessInstance({ }, processDefinitionName: 'My Process' }); + +export let fakeProcessInstances = { + size: 2, + total: 2, + start: 0, + data: [ + { + id: '340124', + name: 'James Franklin EMEA Onboarding', + businessKey: null, + processDefinitionId: 'HROnboarding:60:338704', + tenantId: 'tenant_1', + started: '2017-10-09T12:19:44.560+0000', + ended: null, + startedBy: { + id: 4004, + firstName: 'Integration', + lastName: 'Test', + email: 'srintegrationtest@test.com' + }, + processDefinitionName: 'HROnboarding', + processDefinitionDescription: 'HR Onboarding Workflow', + processDefinitionKey: 'fakeProcessDefinitionKey1', + processDefinitionCategory: 'http://www.activiti.org/processdef', + processDefinitionVersion: 60, + processDefinitionDeploymentId: '338695', + graphicalNotationDefined: true, + startFormDefined: false, + suspended: false, + variables: [] + }, + { + id: '340063', + name: 'Mary Franklin AMERICAS Onboarding', + businessKey: null, + processDefinitionId: 'HROnboarding:60:338704', + tenantId: 'tenant_1', + started: '2017-10-09T12:18:07.484+0000', + ended: null, + startedBy: { + id: 4004, + firstName: 'Integration', + lastName: 'Test', + email: 'srintegrationtest@test.com' + }, + processDefinitionName: 'HROnboarding', + processDefinitionDescription: 'HR Onboarding Workflow', + processDefinitionKey: 'HROnboarding', + processDefinitionCategory: 'http://www.activiti.org/processdef', + processDefinitionVersion: 60, + processDefinitionDeploymentId: '338695', + graphicalNotationDefined: true, + startFormDefined: false, + suspended: false, + variables: [] + }, + { + id: '337604', + name: 'John Jacobs AMERICAS Onboarding', + businessKey: null, + processDefinitionId: 'HROnboarding:49:303243', + tenantId: 'tenant_1', + started: '2017-09-25T10:02:23.522+0000', + ended: null, + startedBy: { + id: 4004, + firstName: 'Integration', + lastName: 'Test', + email: 'srintegrationtest@test.com' + }, + processDefinitionName: 'HROnboarding', + processDefinitionDescription: 'HR Onboarding Workflow', + processDefinitionKey: 'fakeProcessDefinitionKey2', + processDefinitionCategory: 'http://www.activiti.org/processdef', + processDefinitionVersion: 49, + processDefinitionDeploymentId: '303234', + graphicalNotationDefined: true, + startFormDefined: false, + suspended: false, + variables: [] + } + ] + }; diff --git a/ng2-components/ng2-activiti-processlist/src/assets/process.service.mock.ts b/ng2-components/ng2-activiti-processlist/src/assets/process.service.mock.ts index 2f197bec99..eb63c74964 100644 --- a/ng2-components/ng2-activiti-processlist/src/assets/process.service.mock.ts +++ b/ng2-components/ng2-activiti-processlist/src/assets/process.service.mock.ts @@ -16,9 +16,9 @@ */ import { AppDefinitionRepresentationModel, Comment, TaskDetailsModel } from 'ng2-activiti-tasklist'; +import { LightUserRepresentation } from 'ng2-alfresco-core'; import { FilterProcessRepresentationModel } from '../models/filter-process.model'; import { ProcessDefinitionRepresentation } from '../models/process-definition.model'; -import { LightUserRepresentation } from 'ng2-alfresco-core'; export let fakeFilters = { size: 1, total: 1, start: 0, diff --git a/ng2-components/ng2-activiti-processlist/src/components/processlist.component.spec.ts b/ng2-components/ng2-activiti-processlist/src/components/processlist.component.spec.ts index 58b642672d..4b705b08e4 100644 --- a/ng2-components/ng2-activiti-processlist/src/components/processlist.component.spec.ts +++ b/ng2-components/ng2-activiti-processlist/src/components/processlist.component.spec.ts @@ -187,22 +187,6 @@ describe('ProcessInstanceListComponent', () => { fixture.detectChanges(); }); - it('should return the process instances list filtered by processDefinitionKey', (done) => { - let key = 'fakeprocess'; - component.appId = '1'; - component.state = 'open'; - component.processDefinitionKey = key; - component.onSuccess.subscribe((res) => { - let lastCall = getProcessInstancesSpy.calls.mostRecent(); - expect(lastCall).toBeDefined(); - let lastCallArgs = lastCall.args; - expect(lastCallArgs[0]).toBeDefined(); - expect(lastCallArgs[0].processDefinitionKey).toEqual(key); - done(); - }); - fixture.detectChanges(); - }); - it('should return a default name if no name is specified on the process', (done) => { getProcessInstancesSpy = getProcessInstancesSpy.and.returnValue(Observable.of(fakeProcessInstancesWithNoName)); component.appId = '1'; diff --git a/ng2-components/ng2-activiti-processlist/src/components/processlist.component.ts b/ng2-components/ng2-activiti-processlist/src/components/processlist.component.ts index 8368be2f84..4969102596 100644 --- a/ng2-components/ng2-activiti-processlist/src/components/processlist.component.ts +++ b/ng2-components/ng2-activiti-processlist/src/components/processlist.component.ts @@ -138,7 +138,7 @@ export class ProcessInstanceListComponent implements OnChanges, AfterContentInit private load(requestNode: ProcessFilterRequestRepresentation) { this.isLoading = true; - this.processService.getProcessInstances(requestNode) + this.processService.getProcessInstances(requestNode, this.processDefinitionKey) .subscribe( (response) => { let instancesRow = this.createDataRow(response); @@ -281,7 +281,6 @@ export class ProcessInstanceListComponent implements OnChanges, AfterContentInit private createRequestNode() { let requestNode = { appDefinitionId: this.appId, - processDefinitionKey: this.processDefinitionKey, state: this.state, sort: this.sort }; diff --git a/ng2-components/ng2-activiti-processlist/src/models/process-instance-filter.model.ts b/ng2-components/ng2-activiti-processlist/src/models/process-instance-filter.model.ts index 3b65d66160..b5ac36df06 100644 --- a/ng2-components/ng2-activiti-processlist/src/models/process-instance-filter.model.ts +++ b/ng2-components/ng2-activiti-processlist/src/models/process-instance-filter.model.ts @@ -17,7 +17,6 @@ export class ProcessFilterRequestRepresentation { processDefinitionId: string; - processDefinitionKey: string; appDefinitionId: string; state: string; sort: string; @@ -26,7 +25,6 @@ export class ProcessFilterRequestRepresentation { constructor(obj?: any) { this.processDefinitionId = obj && obj.processDefinitionId || null; - this.processDefinitionKey = obj && obj.processDefinitionKey || null; this.appDefinitionId = obj && obj.appDefinitionId || null; this.state = obj && obj.state || null; this.sort = obj && obj.sort || null; diff --git a/ng2-components/ng2-activiti-processlist/src/services/process.service.spec.ts b/ng2-components/ng2-activiti-processlist/src/services/process.service.spec.ts index 4662babc77..438661d04d 100644 --- a/ng2-components/ng2-activiti-processlist/src/services/process.service.spec.ts +++ b/ng2-components/ng2-activiti-processlist/src/services/process.service.spec.ts @@ -19,7 +19,7 @@ import { TestBed } from '@angular/core/testing'; import { async } from '@angular/core/testing'; import { AlfrescoApi } from 'alfresco-js-api'; import { AlfrescoApiService, CoreModule } from 'ng2-alfresco-core'; -import { exampleProcess } from '../assets/process.model.mock'; +import { exampleProcess, fakeProcessInstances } from '../assets/process.model.mock'; import { fakeApp1, fakeApp2, @@ -87,6 +87,18 @@ describe('ProcessService', () => { }); })); + it('should filter by processDefinitionKey', async(() => { + getProcessInstances = getProcessInstances.and.returnValue(Promise.resolve(fakeProcessInstances)); + + service.getProcessInstances(filter, 'fakeProcessDefinitionKey1').subscribe((instances) => { + expect(instances.length).toBe(1); + let instance = instances[0]; + expect(instance.id).toBe('340124'); + expect(instance.name).toBe('James Franklin EMEA Onboarding'); + expect(instance.started).toBe('2017-10-09T12:19:44.560+0000'); + }); + })); + it('should call service to fetch process instances', () => { service.getProcessInstances(filter); expect(getProcessInstances).toHaveBeenCalled(); diff --git a/ng2-components/ng2-activiti-processlist/src/services/process.service.ts b/ng2-components/ng2-activiti-processlist/src/services/process.service.ts index 6fefecf719..22b5b84da2 100644 --- a/ng2-components/ng2-activiti-processlist/src/services/process.service.ts +++ b/ng2-components/ng2-activiti-processlist/src/services/process.service.ts @@ -39,11 +39,11 @@ export class ProcessService extends TaskListService { super(alfrescoApiService, processLogService); } - getProcessInstances(requestNode: ProcessFilterRequestRepresentation): Observable { + getProcessInstances(requestNode: ProcessFilterRequestRepresentation, processDefinitionKey?: string): Observable { return Observable.fromPromise(this.alfrescoApiService.getInstance().activiti.processApi.getProcessInstances(requestNode)) .map((res: any) => { - if (requestNode.processDefinitionKey) { - return res.data.filter(process => process.processDefinitionKey === requestNode.processDefinitionKey); + if (processDefinitionKey) { + return res.data.filter(process => process.processDefinitionKey === processDefinitionKey); } else { return res.data; }