From c92d34f2f8e3efada3b949d3a6e73f256340567c Mon Sep 17 00:00:00 2001 From: Amedeo Lepore Date: Tue, 3 Dec 2024 16:48:46 +0100 Subject: [PATCH] AAE-29002 Allow to filter processes by parentId (#10453) * AAE-29002 Allow to filter processes by parentId * AAE-29002 Move payload tests under describe Payload * AAE-29002 Set parentId as optional --- .../src/lib/i18n/en.json | 1 + .../edit-process-filter-cloud.component.ts | 11 ++++ .../models/process-filter-cloud.model.ts | 2 + .../process-list-cloud.component.spec.ts | 59 ++++++++++++------- .../process-list-cloud.component.ts | 5 ++ .../process-cloud-query-request.model.ts | 2 + 6 files changed, 60 insertions(+), 20 deletions(-) diff --git a/lib/process-services-cloud/src/lib/i18n/en.json b/lib/process-services-cloud/src/lib/i18n/en.json index 8bb3ee9acbe..5bce112575b 100644 --- a/lib/process-services-cloud/src/lib/i18n/en.json +++ b/lib/process-services-cloud/src/lib/i18n/en.json @@ -253,6 +253,7 @@ "SUSPENDED_DATE": "Suspended Date", "STARTED_BY": "Started by", "COMPLETED_DATE": "Completed Date", + "MAIN_PROCESS_ID": "Main process id", "DATE_RANGE": { "NO_DATE": "No Date", "TODAY": "Today", 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 4c045f4633f..5a6aa9c8782 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 @@ -691,6 +691,11 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges { key: 'appVersion', value: 'appVersion' }, + { + label: 'ADF_CLOUD_EDIT_PROCESS_FILTER.LABEL.MAIN_PROCESS_ID', + key: 'parentId', + value: 'parentId' + }, { label: 'ADF_CLOUD_EDIT_PROCESS_FILTER.LABEL.PROCESS_INS_ID', key: 'processInstanceId', @@ -767,6 +772,12 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges { key: 'processInstanceId', value: filterModel.processInstanceId || '' }, + { + label: 'ADF_CLOUD_EDIT_PROCESS_FILTER.LABEL.MAIN_PROCESS_ID', + type: 'text', + key: 'parentId', + value: filterModel.parentId + }, { label: 'ADF_CLOUD_EDIT_PROCESS_FILTER.LABEL.PROCESS_NAME', type: 'text', 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 476b62e7b92..af511b47f72 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 @@ -30,6 +30,7 @@ export class ProcessFilterCloudModel { index: number; appName: string; appVersion?: number | number[]; + parentId?: string; processName: string; processInstanceId: string; initiator: string; @@ -81,6 +82,7 @@ export class ProcessFilterCloudModel { } this.processInstanceId = obj.processInstanceId || null; + this.parentId = obj.parentId || ''; this.processName = obj.processName || null; this.initiator = obj.initiator || null; this.status = obj.status || null; diff --git a/lib/process-services-cloud/src/lib/process/process-list/components/process-list-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/process/process-list/components/process-list-cloud.component.spec.ts index 05be96706a0..1f8180f9104 100644 --- a/lib/process-services-cloud/src/lib/process/process-list/components/process-list-cloud.component.spec.ts +++ b/lib/process-services-cloud/src/lib/process/process-list/components/process-list-cloud.component.spec.ts @@ -152,31 +152,50 @@ describe('ProcessListCloudComponent', () => { expect(component.rows.length).toEqual(3); }); - it('should the payload contain the appVersion if it is defined', () => { - spyOn(processListCloudService, 'getProcessByRequest').and.returnValue(of(fakeProcessCloudList)); - component.appVersion = 1; - component.ngAfterContentInit(); - component.reload(); + describe('Payload', () => { + it('should the payload contain the appVersion if it is defined', () => { + spyOn(processListCloudService, 'getProcessByRequest').and.returnValue(of(fakeProcessCloudList)); + component.appVersion = 1; + component.ngAfterContentInit(); + component.reload(); - expect(component.requestNode.appVersion).toEqual('1'); - }); + expect(component.requestNode.appVersion).toEqual('1'); + }); - it('should the payload contain all the app versions joined by a comma separator', () => { - spyOn(processListCloudService, 'getProcessByRequest').and.returnValue(of(fakeProcessCloudList)); - component.appVersion = [1, 2, 3]; - component.ngAfterContentInit(); - component.reload(); + it('should the payload contain all the app versions joined by a comma separator', () => { + spyOn(processListCloudService, 'getProcessByRequest').and.returnValue(of(fakeProcessCloudList)); + component.appVersion = [1, 2, 3]; + component.ngAfterContentInit(); + component.reload(); - expect(component.requestNode.appVersion).toEqual('1,2,3'); - }); + expect(component.requestNode.appVersion).toEqual('1,2,3'); + }); - it('should the payload NOT contain any app version when appVersion does not have a value', () => { - spyOn(processListCloudService, 'getProcessByRequest').and.returnValue(of(fakeProcessCloudList)); - component.appVersion = undefined; - component.ngAfterContentInit(); - component.reload(); + it('should the payload NOT contain any app version when appVersion does not have a value', () => { + spyOn(processListCloudService, 'getProcessByRequest').and.returnValue(of(fakeProcessCloudList)); + component.appVersion = undefined; + component.ngAfterContentInit(); + component.reload(); + + expect(component.requestNode.appVersion).toEqual(''); + }); - expect(component.requestNode.appVersion).toEqual(''); + it('should the payload contain the parentId if it is defined', () => { + spyOn(processListCloudService, 'getProcessByRequest').and.returnValue(of(fakeProcessCloudList)); + component.parentId = 'fake-parent-id'; + component.ngAfterContentInit(); + component.reload(); + + expect(component.requestNode.parentId).toEqual('fake-parent-id'); + }); + + it('should the payload contain an empty parentId if it is NOT defined', () => { + spyOn(processListCloudService, 'getProcessByRequest').and.returnValue(of(fakeProcessCloudList)); + component.ngAfterContentInit(); + component.reload(); + + expect(component.requestNode.parentId).toBeUndefined(); + }); }); it('should return the results if an application name is given', (done) => { diff --git a/lib/process-services-cloud/src/lib/process/process-list/components/process-list-cloud.component.ts b/lib/process-services-cloud/src/lib/process/process-list/components/process-list-cloud.component.ts index f1b5f1bdc79..002941cb2ff 100644 --- a/lib/process-services-cloud/src/lib/process/process-list/components/process-list-cloud.component.ts +++ b/lib/process-services-cloud/src/lib/process/process-list/components/process-list-cloud.component.ts @@ -109,6 +109,10 @@ export class ProcessListCloudComponent @Input() name: string = ''; + /** Filter the processes to display only the ones with this parentId. */ + @Input() + parentId?: string; + /** Filter the processes to display only the ones with this process definition ID. */ @Input() processDefinitionId: string = ''; @@ -606,6 +610,7 @@ export class ProcessListCloudComponent id: this.id, environmentId: this.environmentId, name: this.name, + parentId: this.parentId, processDefinitionId: this.processDefinitionId, processDefinitionName: this.processDefinitionName, processDefinitionKey: this.processDefinitionKey, diff --git a/lib/process-services-cloud/src/lib/process/process-list/models/process-cloud-query-request.model.ts b/lib/process-services-cloud/src/lib/process/process-list/models/process-cloud-query-request.model.ts index 9fcccd071fb..0027c734c71 100644 --- a/lib/process-services-cloud/src/lib/process/process-list/models/process-cloud-query-request.model.ts +++ b/lib/process-services-cloud/src/lib/process/process-list/models/process-cloud-query-request.model.ts @@ -27,6 +27,7 @@ export class ProcessQueryCloudRequestModel { id?: string; environmentId?: string; name?: string; + parentId?: string; processDefinitionId?: string; processDefinitionName?: string; processDefinitionKey?: string; @@ -56,6 +57,7 @@ export class ProcessQueryCloudRequestModel { this.id = obj.id; this.environmentId = obj.environmentId; this.name = obj.name; + this.parentId = obj.parentId; this.processDefinitionId = obj.processDefinitionId; this.processDefinitionName = obj.processDefinitionName; this.processDefinitionKey = obj.processDefinitionKey;