From a4f652edc615de2335ca86740196a390aea331c7 Mon Sep 17 00:00:00 2001 From: Diogo Bastos Date: Tue, 21 Mar 2023 12:17:52 +0000 Subject: [PATCH] [AAE-12288] add unit tests for environment aware logic --- .../src/lib/app/mock/app-model.mock.ts | 7 ++++ .../src/lib/common/mock/environment.mock.ts | 33 +++++++++++++++++++ .../src/lib/common/mock/index.ts | 18 ++++++++++ .../src/lib/common/mock/public-api.ts | 19 +++++++++++ .../src/lib/common/public-api.ts | 1 + ...dit-process-filter-cloud.component.spec.ts | 12 ++++++- .../edit-process-filter-cloud.component.ts | 12 ++++--- .../base-edit-task-filter-cloud.component.ts | 6 ++-- ...ervice-task-filter-cloud.component.spec.ts | 16 ++++++++- .../mock/edit-task-filter-cloud.mock.ts | 25 ++++++++++++++ .../components/task-list-cloud.component.ts | 1 + 11 files changed, 141 insertions(+), 9 deletions(-) create mode 100644 lib/process-services-cloud/src/lib/common/mock/environment.mock.ts create mode 100644 lib/process-services-cloud/src/lib/common/mock/index.ts create mode 100644 lib/process-services-cloud/src/lib/common/mock/public-api.ts diff --git a/lib/process-services-cloud/src/lib/app/mock/app-model.mock.ts b/lib/process-services-cloud/src/lib/app/mock/app-model.mock.ts index 9ddbc061c9..b9b0dbe52b 100644 --- a/lib/process-services-cloud/src/lib/app/mock/app-model.mock.ts +++ b/lib/process-services-cloud/src/lib/app/mock/app-model.mock.ts @@ -15,6 +15,7 @@ * limitations under the License. */ +import { fakeEnvironmentList } from '../../common'; import { ApplicationInstanceModel } from '../models/application-instance.model'; export const fakeApplicationInstance: ApplicationInstanceModel[] = [ @@ -22,3 +23,9 @@ export const fakeApplicationInstance: ApplicationInstanceModel[] = [ { name: 'application-new-2', createdAt: '2018-09-21T12:31:39.000Z', status: 'Pending', theme: 'theme-2', icon: 'favorite_border' }, { name: 'application-new-3', createdAt: '2018-09-21T12:31:39.000Z', status: 'Pending' } ]; + +export const fakeApplicationInstanceWithEnvironment: ApplicationInstanceModel[] = [ + { name: 'application-new-1', environmentId: fakeEnvironmentList[0].id, createdAt: '2018-09-21T12:31:39.000Z', status: 'Running', theme: 'theme-2', icon: 'favorite_border' }, + { name: 'application-new-2', environmentId: fakeEnvironmentList[1].id,createdAt: '2018-09-21T12:31:39.000Z', status: 'Pending', theme: 'theme-2', icon: 'favorite_border' }, + { name: 'application-new-3', environmentId: fakeEnvironmentList[2].id,createdAt: '2018-09-21T12:31:39.000Z', status: 'Pending' } +]; diff --git a/lib/process-services-cloud/src/lib/common/mock/environment.mock.ts b/lib/process-services-cloud/src/lib/common/mock/environment.mock.ts new file mode 100644 index 0000000000..ae41997810 --- /dev/null +++ b/lib/process-services-cloud/src/lib/common/mock/environment.mock.ts @@ -0,0 +1,33 @@ +/*! + * @license + * Copyright 2019 Alfresco Software, Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Environment } from '../interface/environment.interface'; + +export const fakeEnvironmentList: Environment[] = [ + { + id: 'test-env-1', + name: 'test-env-name-1' + }, + { + id: 'test-env-2', + name: 'test-env-name-2' + }, + { + id: 'test-env-3', + name: 'test-env-name-3' + } +]; diff --git a/lib/process-services-cloud/src/lib/common/mock/index.ts b/lib/process-services-cloud/src/lib/common/mock/index.ts new file mode 100644 index 0000000000..a7e30cc675 --- /dev/null +++ b/lib/process-services-cloud/src/lib/common/mock/index.ts @@ -0,0 +1,18 @@ +/*! + * @license + * Copyright 2019 Alfresco Software, Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export * from './public-api'; diff --git a/lib/process-services-cloud/src/lib/common/mock/public-api.ts b/lib/process-services-cloud/src/lib/common/mock/public-api.ts new file mode 100644 index 0000000000..067c7af91f --- /dev/null +++ b/lib/process-services-cloud/src/lib/common/mock/public-api.ts @@ -0,0 +1,19 @@ +/*! + * @license + * Copyright 2019 Alfresco Software, Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export * from './date-range-filter.mock'; +export * from './environment.mock'; diff --git a/lib/process-services-cloud/src/lib/common/public-api.ts b/lib/process-services-cloud/src/lib/common/public-api.ts index b4c2a300e2..4287712fc5 100644 --- a/lib/process-services-cloud/src/lib/common/public-api.ts +++ b/lib/process-services-cloud/src/lib/common/public-api.ts @@ -16,3 +16,4 @@ */ export * from './interface/index'; +export * from './mock/index'; diff --git a/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter-cloud.component.spec.ts index ceaa62362d..fe41f9ce1d 100644 --- a/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter-cloud.component.spec.ts +++ b/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter-cloud.component.spec.ts @@ -30,7 +30,7 @@ import { ProcessFiltersCloudModule } from '../process-filters-cloud.module'; import { ProcessFilterCloudModel } from '../models/process-filter-cloud.model'; import { ProcessFilterCloudService } from '../services/process-filter-cloud.service'; import { AppsProcessCloudService } from '../../../app/services/apps-process-cloud.service'; -import { fakeApplicationInstance } from './../../../app/mock/app-model.mock'; +import { fakeApplicationInstance, fakeApplicationInstanceWithEnvironment } from './../../../app/mock/app-model.mock'; import moment from 'moment'; import { PROCESS_FILTERS_SERVICE_TOKEN } from '../../../services/cloud-token.service'; import { LocalPreferenceCloudService } from '../../../services/local-preference-cloud.service'; @@ -41,6 +41,7 @@ import { MatIconTestingModule } from '@angular/material/icon/testing'; import { ProcessDefinitionCloud } from '../../../models/process-definition-cloud.model'; import { mockAppVersions } from '../mock/process-filters-cloud.mock'; import { DATE_FORMAT_CLOUD } from '../../../models/date-format-cloud.model'; +import { fakeEnvironmentList } from '../../../common/mock/environment.mock'; describe('EditProcessFilterCloudComponent', () => { let component: EditProcessFilterCloudComponent; @@ -1161,4 +1162,13 @@ describe('EditProcessFilterCloudComponent', () => { expect(component.initiatorOptions).toEqual([{ username: 'user1' }, { username: 'user2' }]); }); }); + + it('should add environment name to each application selector option label', () => { + component.environmentList = fakeEnvironmentList; + component.environmentId = fakeEnvironmentList[0].id; + + getRunningApplicationsSpy.and.returnValue(of(fakeApplicationInstanceWithEnvironment)); + component.getRunningApplications(); + expect(component.applicationNames[0].label).toBe('application-new-1 (test-env-name-1)'); + }); }); 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 481ee6e4d0..6ecf1e7a45 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 @@ -65,9 +65,6 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes @Input() id: string; - @Input() - environmentId: string; - /** List of process filter properties to display */ @Input() filterProperties = DEFAULT_PROCESS_FILTER_PROPERTIES; @@ -80,6 +77,11 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes @Input() actions = DEFAULT_ACTIONS; + /** Environment ID of the application. */ + @Input() + environmentId: string; + + /** List of environments. */ @Input() environmentList: Environment[] = []; @@ -422,8 +424,8 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes }); } - private getEnvironmentName(environmentId: string) { - return this.environmentList.find((env: any) => env['id'] === environmentId).name; + private getEnvironmentName(environmentId: string): string { + return this.environmentList.find((env: any) => env['id'] === environmentId)?.name; } getProcessDefinitions() { diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.ts b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.ts index 65785ae9c3..9ff7d69b35 100644 --- a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.ts +++ b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.ts @@ -68,9 +68,11 @@ export abstract class BaseEditTaskFilterCloudComponent implements OnInit, OnC @Input() id: string; + /** Environment ID of the application. */ @Input() environmentId: string; + /** List of environments. */ @Input() environmentList: Environment[] = []; @@ -261,8 +263,8 @@ export abstract class BaseEditTaskFilterCloudComponent implements OnInit, OnC }); } - private getEnvironmentName(environmentId: string) { - return this.environmentList.find((env: any) => env['id'] === environmentId).name; + private getEnvironmentName(environmentId: string): string { + return this.environmentList.find((env: any) => env['id'] === environmentId)?.name; } getProcessDefinitions() { diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter-cloud.component.spec.ts index 1ed8964ca0..14ce0e96d7 100644 --- a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter-cloud.component.spec.ts +++ b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter-cloud.component.spec.ts @@ -26,7 +26,7 @@ import { TASK_FILTERS_SERVICE_TOKEN } from '../../../../services/cloud-token.ser import { LocalPreferenceCloudService } from '../../../../services/local-preference-cloud.service'; import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module'; import { AppsProcessCloudService } from '../../../../app/services/apps-process-cloud.service'; -import { fakeApplicationInstance } from '../../../../app/mock/app-model.mock'; +import { fakeApplicationInstance, fakeApplicationInstanceWithEnvironment } from '../../../../app/mock/app-model.mock'; import { TaskFiltersCloudModule } from '../../task-filters-cloud.module'; import { ServiceTaskFilterCloudService } from '../../services/service-task-filter-cloud.service'; import { TaskCloudService } from '../../../services/task-cloud.service'; @@ -36,6 +36,8 @@ import { EditServiceTaskFilterCloudComponent } from './edit-service-task-filter- import { MatIconTestingModule } from '@angular/material/icon/testing'; import { ProcessDefinitionCloud } from '../../../../models/process-definition-cloud.model'; import { TaskFilterDialogCloudComponent } from '../task-filter-dialog/task-filter-dialog-cloud.component'; +import { fakeEnvironmentList } from 'lib/process-services-cloud/src/lib/common/mock/environment.mock'; +import { mockApplicationTaskFilterProperties } from '../../mock/edit-task-filter-cloud.mock'; describe('EditServiceTaskFilterCloudComponent', () => { let component: EditServiceTaskFilterCloudComponent; @@ -750,4 +752,16 @@ describe('EditServiceTaskFilterCloudComponent', () => { expect(restoreDefaultFiltersSpy).not.toHaveBeenCalled(); }); }); + + it('should add environment name to each application selector option label', () => { + component.appName = fakeApplicationInstance[0].name; + component.environmentList = fakeEnvironmentList; + component.environmentId = fakeEnvironmentList[0].id; + + getRunningApplicationsSpy.and.returnValue(of(fakeApplicationInstanceWithEnvironment)); + spyOn(component, 'createTaskFilterProperties').and.returnValue(mockApplicationTaskFilterProperties); + + const filteredProperties = component.createAndFilterProperties(); + expect(filteredProperties[0].options[0].label).toBe('application-new-1 (test-env-name-1)'); + }); }); diff --git a/lib/process-services-cloud/src/lib/task/task-filters/mock/edit-task-filter-cloud.mock.ts b/lib/process-services-cloud/src/lib/task/task-filters/mock/edit-task-filter-cloud.mock.ts index 7e99f02afd..9b02864948 100644 --- a/lib/process-services-cloud/src/lib/task/task-filters/mock/edit-task-filter-cloud.mock.ts +++ b/lib/process-services-cloud/src/lib/task/task-filters/mock/edit-task-filter-cloud.mock.ts @@ -108,3 +108,28 @@ export const mockCreatedDateFilter = { to: '_createdTo' } }; + +export const mockApplicationsSelectorOptions = [ + { + label: 'application-new-1 (test-env-name-1)', + value: 'application-new-1' + }, + { + label: 'application-new-1 (test-env-name-1)', + value: 'application-new-1' + }, + { + label: 'application-new-1 (test-env-name-1)', + value: 'application-new-1' + } +]; + +export const mockApplicationTaskFilterProperties = [ + { + label: 'test-label', + type: 'select', + key: 'appName', + value: mockApplicationsSelectorOptions[0].value, + options: mockApplicationsSelectorOptions + } +]; diff --git a/lib/process-services-cloud/src/lib/task/task-list/components/task-list-cloud.component.ts b/lib/process-services-cloud/src/lib/task/task-list/components/task-list-cloud.component.ts index 0afb57383b..4c068c75fa 100644 --- a/lib/process-services-cloud/src/lib/task/task-list/components/task-list-cloud.component.ts +++ b/lib/process-services-cloud/src/lib/task/task-list/components/task-list-cloud.component.ts @@ -89,6 +89,7 @@ export class TaskListCloudComponent extends BaseTaskListCloudComponent