From f03592f2301c9ed6da2d41a69f1e9bb9288865c5 Mon Sep 17 00:00:00 2001
From: Mercy Chrysolite <48274621+mcchrys@users.noreply.github.com>
Date: Mon, 27 Apr 2020 04:40:48 +0530
Subject: [PATCH] [AAE-2020] Add release version filter for process instances
(#5581)
* [AAE-2020] Add release version filter for process instances
* Updated unit tests
* Updated unit test case
* Added translation key
---
.../src/lib/i18n/en.json | 6 ++++--
.../edit-process-filter-cloud.component.html | 7 +++++++
...dit-process-filter-cloud.component.spec.ts | 20 +++++++++++++++++++
.../edit-process-filter-cloud.component.ts | 10 ++++++++++
.../models/process-filter-cloud.model.ts | 2 ++
.../process-list-cloud.component.spec.ts | 2 +-
.../process-list-cloud.component.ts | 5 +++++
.../mock/process-list-service.mock.ts | 6 +++---
.../process-cloud-query-request.model.ts | 2 ++
9 files changed, 54 insertions(+), 6 deletions(-)
diff --git a/lib/process-services-cloud/src/lib/i18n/en.json b/lib/process-services-cloud/src/lib/i18n/en.json
index 32199287e0..1b695dcd96 100644
--- a/lib/process-services-cloud/src/lib/i18n/en.json
+++ b/lib/process-services-cloud/src/lib/i18n/en.json
@@ -19,7 +19,8 @@
"PROCESS_NAME": "Process Name",
"PARENT_TASK_ID": "Parent Task Id",
"PROCESS_DEF_ID": "Process Definition Id",
- "PROCESS_DEF_KEY": "Process Definition Key"
+ "PROCESS_DEF_KEY": "Process Definition Key",
+ "APP_VERSION": "App Release Version"
},
"ADF_CLOUD_START_PROCESS": {
"BUTTON": "Start Process",
@@ -159,7 +160,8 @@
"LAST_MODIFIED": "LastModified",
"LAST_MODIFIED_DATE_FORM": "LastModifiedFrom",
"LAST_MODIFIED_TO": "LastModifiedTo",
- "PROCESS_NAME": "ProcessName"
+ "PROCESS_NAME": "ProcessName",
+ "APP_VERSION": "AppReleaseVersion"
},
"ERROR": {
"DATE": "Date format DD/MM/YYYY"
diff --git a/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter-cloud.component.html b/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter-cloud.component.html
index 3732b80c26..7b27d0feef 100644
--- a/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter-cloud.component.html
+++ b/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter-cloud.component.html
@@ -41,6 +41,13 @@
placeholder="{{processFilterProperty.label | translate}}"
[attr.data-automation-id]="'adf-cloud-edit-process-property-' + processFilterProperty.key"/>
+
+
+
{{processFilterProperty.label | translate}}
{
id: 'mock-process-filter-id',
status: 'RUNNING',
appName: 'mock-app-name',
+ appVersion: 1,
processDefinitionId: 'process-def-id',
order: 'ASC',
sort: 'id'
@@ -345,6 +346,25 @@ describe('EditProcessFilterCloudComponent', () => {
});
}));
+ it('should fetch applications when appName and appVersion input is set', async(() => {
+ fixture.detectChanges();
+ component.filterProperties = ['appName', 'processName', 'appVersion'];
+ fixture.detectChanges();
+ const processFilterIdChange = new SimpleChange(null, 'mock-process-filter-id', true);
+ component.ngOnChanges({ 'id': processFilterIdChange });
+ fixture.detectChanges();
+ const appController = component.editProcessFilterForm.get('appName');
+ const appVersionController = component.editProcessFilterForm.get('appVersion');
+ fixture.detectChanges();
+ fixture.whenStable().then(() => {
+ expect(getRunningApplicationsSpy).toHaveBeenCalled();
+ expect(appController).toBeDefined();
+ expect(appController.value).toEqual('mock-app-name');
+ expect(appVersionController).toBeDefined();
+ expect(appVersionController.value).toEqual(1);
+ });
+ }));
+
it('should display default sort properties', async(() => {
const processFilterIdChange = new SimpleChange(null, 'mock-process-filter-id', true);
component.ngOnChanges({ 'id': processFilterIdChange });
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 9787023bcc..9184a5760e 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
@@ -428,6 +428,10 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
return property.type === 'text';
}
+ isNumberType(property: ProcessFilterProperties): boolean {
+ return property.type === 'number';
+ }
+
hasFormChanged(action: any): boolean {
if (action.actionType === EditProcessFilterCloudComponent.ACTION_SAVE) {
return !this.formHasBeenChanged;
@@ -500,6 +504,12 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
value: currentProcessFilter.appName || '',
options: this.applicationNames
}),
+ new ProcessFilterProperties({
+ label: 'ADF_CLOUD_EDIT_PROCESS_FILTER.LABEL.APP_VERSION',
+ type: 'number',
+ key: 'appVersion',
+ value: currentProcessFilter.appVersion
+ }),
new ProcessFilterProperties({
label: 'ADF_CLOUD_EDIT_PROCESS_FILTER.LABEL.PROCESS_INS_ID',
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 dad5c91254..4aaba07875 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
@@ -22,6 +22,7 @@ export class ProcessFilterCloudModel {
icon: string;
index: number;
appName: string;
+ appVersion?: number;
processName: string;
processInstanceId: string;
initiator: string;
@@ -42,6 +43,7 @@ export class ProcessFilterCloudModel {
this.icon = obj.icon || null;
this.index = obj.index || null;
this.appName = obj.appName || obj.appName === '' ? obj.appName : null;
+ this.appVersion = obj.appVersion || null;
this.processInstanceId = obj.processInstanceId || null;
this.processName = obj.processName || null;
this.initiator = obj.initiator || 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 d2307fbc05..ea00e8dfba 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
@@ -180,7 +180,7 @@ describe('ProcessListCloudComponent', () => {
expect(component.rows).toBeDefined();
expect(component.rows.length).toEqual(3);
expect(component.rows[0].entry['appName']).toBe('easy-peasy-japanesey');
- expect(component.rows[0].entry['appVersion']).toBe('');
+ expect(component.rows[0].entry['appVersion']).toBe(1);
expect(component.rows[0].entry['id']).toBe('69eddfa7-d781-11e8-ae24-0a58646001fa');
expect(component.rows[0].entry['name']).toEqual('starring');
expect(component.rows[0].entry['processDefinitionId']).toBe('BasicProcess:1:d05062f1-c6fb-11e8-ae24-0a58646001fa');
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 743160dc47..68e46593cc 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
@@ -46,6 +46,10 @@ export class ProcessListCloudComponent extends DataTableSchema implements OnChan
@Input()
appName: string = '';
+ /** The release version of the application. */
+ @Input()
+ appVersion: number;
+
/** Name of the initiator of the process. */
@Input()
initiator: string = '';
@@ -267,6 +271,7 @@ export class ProcessListCloudComponent extends DataTableSchema implements OnChan
private createRequestNode(): ProcessQueryCloudRequestModel {
const requestNode = {
appName: this.appName,
+ appVersion: this.appVersion,
maxItems: this.size,
skipCount: this.skipCount,
initiator: this.initiator,
diff --git a/lib/process-services-cloud/src/lib/process/process-list/mock/process-list-service.mock.ts b/lib/process-services-cloud/src/lib/process/process-list/mock/process-list-service.mock.ts
index 39c29a7c40..fe4ae4c975 100644
--- a/lib/process-services-cloud/src/lib/process/process-list/mock/process-list-service.mock.ts
+++ b/lib/process-services-cloud/src/lib/process/process-list/mock/process-list-service.mock.ts
@@ -23,7 +23,7 @@ export const fakeProcessCloudList = {
{
entry: {
appName: 'easy-peasy-japanesey',
- appVersion: '',
+ appVersion: 1,
id: '69eddfa7-d781-11e8-ae24-0a58646001fa',
name: 'starring',
processDefinitionId: 'BasicProcess:1:d05062f1-c6fb-11e8-ae24-0a58646001fa',
@@ -40,7 +40,7 @@ export const fakeProcessCloudList = {
{
entry: {
appName: 'easy-peasy-japanesey',
- appVersion: '',
+ appVersion: 1,
id: '8b3f625f-d781-11e8-ae24-0a58646001fa',
name: null,
processDefinitionId: 'BasicProcess:1:d05062f1-c6fb-11e8-ae24-0a58646001fa',
@@ -57,7 +57,7 @@ export const fakeProcessCloudList = {
{
entry: {
appName: 'easy-peasy-japanesey',
- appVersion: '',
+ appVersion: 2,
id: '87c12637-d783-11e8-ae24-0a58646001fa',
name: null,
processDefinitionId: 'BasicProcess:1:d05062f1-c6fb-11e8-ae24-0a58646001fa',
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 db8dac8f54..c7f50a7d83 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
@@ -19,6 +19,7 @@ import { ProcessListCloudSortingModel } from './process-list-sorting.model';
export class ProcessQueryCloudRequestModel {
appName: string;
+ appVersion?: number;
initiator?: null;
id?: string;
name?: string;
@@ -36,6 +37,7 @@ export class ProcessQueryCloudRequestModel {
constructor(obj?: any) {
if (obj) {
this.appName = obj.appName;
+ this.appVersion = obj.appVersion;
this.initiator = obj.initiator;
this.id = obj.id;
this.name = obj.name;