diff --git a/lib/process-services-cloud/src/lib/app/components/app-details-cloud.component.html b/lib/process-services-cloud/src/lib/app/components/app-details-cloud.component.html
index 530cca811d..09393ca6dd 100644
--- a/lib/process-services-cloud/src/lib/app/components/app-details-cloud.component.html
+++ b/lib/process-services-cloud/src/lib/app/components/app-details-cloud.component.html
@@ -5,11 +5,11 @@
role="button"
class="adf-app-listgrid-item-card"
title="{{applicationInstance.name}}"
- [ngClass]="[applicationInstance.theme]"
+ [ngClass]="getTheme()"
(click)="onSelectApp(applicationInstance)"
(keyup.enter)="onSelectApp(applicationInstance)">
- {{applicationInstance.icon}}
+ {{ getIcon() }}
{{applicationInstance.name}}
diff --git a/lib/process-services-cloud/src/lib/app/components/app-details-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/app/components/app-details-cloud.component.spec.ts
index abcc6448c4..c45e321739 100644
--- a/lib/process-services-cloud/src/lib/app/components/app-details-cloud.component.spec.ts
+++ b/lib/process-services-cloud/src/lib/app/components/app-details-cloud.component.spec.ts
@@ -22,6 +22,7 @@ import { fakeApplicationInstance } from '../mock/app-model.mock';
import { AppDetailsCloudComponent } from './app-details-cloud.component';
import { ProcessServiceCloudTestingModule } from '../../testing/process-service-cloud.testing.module';
import { AppListCloudModule } from '../app-list-cloud.module';
+import { ApplicationInstanceModel } from '../models/application-instance.model';
describe('AppDetailsCloudComponent', () => {
@@ -55,4 +56,23 @@ describe('AppDetailsCloudComponent', () => {
app.click();
expect(component.selectedApp.emit).toHaveBeenCalledWith(fakeApplicationInstance[0]);
});
+
+ it('should render card with default icon and theme when are not provided', () => {
+ component.applicationInstance = fakeApplicationInstance[2];
+ fixture.detectChanges();
+
+ const theme = fixture.nativeElement.querySelector('.adf-app-listgrid-item-card').getAttribute('ng-reflect-ng-class');
+ const icon = fixture.nativeElement.querySelector('.adf-app-listgrid-item-card-logo-icon');
+
+ expect(theme).toEqual(ApplicationInstanceModel.DEFAULT_THEME);
+ expect(icon).toBeTruthy();
+ });
+
+ it('should render card with a non ApplicationInstanceModel input object', () => {
+ component.applicationInstance = { name: 'application-new-3', createdAt: '2018-09-21T12:31:39.000Z', status: 'Pending' };
+ fixture.detectChanges();
+ const app = fixture.nativeElement.querySelector('.mat-card');
+ expect(app).toBeTruthy();
+
+ });
});
diff --git a/lib/process-services-cloud/src/lib/app/components/app-details-cloud.component.ts b/lib/process-services-cloud/src/lib/app/components/app-details-cloud.component.ts
index b33080274f..fd0eaae1f1 100644
--- a/lib/process-services-cloud/src/lib/app/components/app-details-cloud.component.ts
+++ b/lib/process-services-cloud/src/lib/app/components/app-details-cloud.component.ts
@@ -41,4 +41,18 @@ export class AppDetailsCloudComponent {
public onSelectApp(app: ApplicationInstanceModel): void {
this.selectedApp.emit(app);
}
+
+ public getTheme() {
+ if ( !this.applicationInstance.theme ) {
+ return ApplicationInstanceModel.DEFAULT_THEME;
+ }
+ return this.applicationInstance.theme;
+ }
+
+ public getIcon() {
+ if ( !this.applicationInstance.icon ) {
+ return ApplicationInstanceModel.DEFAULT_ICON;
+ }
+ return this.applicationInstance.icon;
+ }
}
diff --git a/lib/process-services-cloud/src/lib/app/components/app-list-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/app/components/app-list-cloud.component.spec.ts
index aa2023be20..d54a9fb895 100644
--- a/lib/process-services-cloud/src/lib/app/components/app-list-cloud.component.spec.ts
+++ b/lib/process-services-cloud/src/lib/app/components/app-list-cloud.component.spec.ts
@@ -62,7 +62,7 @@ describe('AppListCloudComponent', () => {
fixture.whenStable().then(() => {
component.apps$.subscribe((response: ApplicationInstanceModel[]) => {
expect(response).toBeDefined();
- expect(response.length).toEqual(2);
+ expect(response.length).toEqual(3);
expect(response[0].name).toEqual('application-new-1');
expect(response[0].status).toEqual('Running');
expect(response[0].icon).toEqual('favorite_border');
@@ -106,7 +106,7 @@ describe('AppListCloudComponent', () => {
expect(adfCloudDetailsElement).toBeDefined();
expect(adfCloudDetailsElement).not.toBeNull();
- expect(adfCloudDetailsElement.length).toEqual(2);
+ expect(adfCloudDetailsElement.length).toEqual(3);
expect(component.isGrid()).toBe(true);
expect(component.isList()).toBe(false);
@@ -146,7 +146,7 @@ describe('AppListCloudComponent', () => {
expect(appListElement).toBeDefined();
expect(appListElement).not.toBeNull();
- expect(appListItemElement.length).toEqual(2);
+ expect(appListItemElement.length).toEqual(3);
expect(component.isGrid()).toBe(false);
expect(component.isList()).toBe(true);
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 1bb0b4fc9a..39468a0795 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
@@ -16,8 +16,11 @@
*/
import { ApplicationInstanceModel } from '../models/application-instance.model';
export let fakeApplicationInstance = [
- new ApplicationInstanceModel(
- { name: 'application-new-1', createdAt: '2018-09-21T12:31:39.000Z', status: 'Running', theme: 'theme-2', icon: 'favorite_border' }),
- new ApplicationInstanceModel(
- { name: 'application-new-2', createdAt: '2018-09-21T12:31:39.000Z', status: 'Pending', theme: 'theme-2', icon: 'favorite_border' })
+ new ApplicationInstanceModel(
+ { name: 'application-new-1', createdAt: '2018-09-21T12:31:39.000Z', status: 'Running', theme: 'theme-2', icon: 'favorite_border' }),
+ new ApplicationInstanceModel(
+ { name: 'application-new-2', createdAt: '2018-09-21T12:31:39.000Z', status: 'Pending', theme: 'theme-2', icon: 'favorite_border' }),
+ new ApplicationInstanceModel(
+ { name: 'application-new-3', createdAt: '2018-09-21T12:31:39.000Z', status: 'Pending' })
+
];
diff --git a/lib/process-services-cloud/src/lib/app/models/application-instance.model.ts b/lib/process-services-cloud/src/lib/app/models/application-instance.model.ts
index 111dca8b9a..69c02075c9 100644
--- a/lib/process-services-cloud/src/lib/app/models/application-instance.model.ts
+++ b/lib/process-services-cloud/src/lib/app/models/application-instance.model.ts
@@ -33,8 +33,8 @@ export class ApplicationInstanceModel {
this.name = obj.name ? obj.name : null;
this.status = obj.status ? obj.status : null;
this.createdAt = obj.createdAt ? obj.createdAt : null;
- this.theme = obj.theme ? obj.theme : ApplicationInstanceModel.DEFAULT_THEME;
- this.icon = obj.icon ? obj.icon : ApplicationInstanceModel.DEFAULT_ICON;
+ this.theme = obj.theme;
+ this.icon = obj.icon;
this.description = obj.description ? obj.description : null;
this.connectors = obj.connectors ? obj.connectors : null;
}
diff --git a/lib/process-services-cloud/src/lib/app/services/apps-process-cloud.service.spec.ts b/lib/process-services-cloud/src/lib/app/services/apps-process-cloud.service.spec.ts
index e2a78bf9b5..f9036e50e8 100644
--- a/lib/process-services-cloud/src/lib/app/services/apps-process-cloud.service.spec.ts
+++ b/lib/process-services-cloud/src/lib/app/services/apps-process-cloud.service.spec.ts
@@ -42,7 +42,7 @@ describe('AppsProcessCloudService', () => {
service.getDeployedApplicationsByStatus('fake').subscribe(
(res: ApplicationInstanceModel[]) => {
expect(res).toBeDefined();
- expect(res.length).toEqual(2);
+ expect(res.length).toEqual(3);
expect(res).toEqual(fakeApplicationInstance);
expect(res[0]).toEqual(fakeApplicationInstance[0]);
expect(res[0].name).toEqual('application-new-1');