From 878b49fea1e264b5ee5c961b6c1917d209d1eb87 Mon Sep 17 00:00:00 2001
From: arditdomi <32884230+arditdomi@users.noreply.github.com>
Date: Tue, 12 Nov 2019 15:04:01 +0000
Subject: [PATCH] [ADF-4979] TaskHeaderCloudComponent Add error emit when
appName or taskId is not provided (#5236)
* [ADF-4979] Add error emit when appName or taskId are not provided in TaskHeaderCloudComponent
* [ADF-4979] Modify @Output description
* [ADF-4979] Remove unused onObservable complete code
---
.../task-header-cloud-demo.component.html | 12 ++----
.../cloud/task-header-cloud-demo.component.ts | 2 +-
.../task-header-cloud.component.spec.ts | 42 ++++++++++++++++---
.../components/task-header-cloud.component.ts | 8 ++--
4 files changed, 46 insertions(+), 18 deletions(-)
diff --git a/demo-shell/src/app/components/cloud/task-header-cloud-demo.component.html b/demo-shell/src/app/components/cloud/task-header-cloud-demo.component.html
index a301978d77..521dfd0436 100644
--- a/demo-shell/src/app/components/cloud/task-header-cloud-demo.component.html
+++ b/demo-shell/src/app/components/cloud/task-header-cloud-demo.component.html
@@ -4,22 +4,18 @@
{{ 'APP_LAYOUT.TASK_HEADER_CLOUD.APP_NAME_INPUT' | translate }}
+ [formControl]="appNameFormControl"
+ (change)="updateTaskHeader()">
{{ 'APP_LAYOUT.TASK_HEADER_CLOUD.TASK_ID_INPUT' | translate }}
+ [formControl]="taskIdFormControl"
+ (change)="updateTaskHeader()">
-
-
{{errorMessage}}
diff --git a/demo-shell/src/app/components/cloud/task-header-cloud-demo.component.ts b/demo-shell/src/app/components/cloud/task-header-cloud-demo.component.ts
index e35803e404..f43eccdfbd 100644
--- a/demo-shell/src/app/components/cloud/task-header-cloud-demo.component.ts
+++ b/demo-shell/src/app/components/cloud/task-header-cloud-demo.component.ts
@@ -44,6 +44,6 @@ export class TaskHeaderCloudDemoComponent {
}
onError(error) {
- this.errorMessage = error.message;
+ this.errorMessage = error;
}
}
diff --git a/lib/process-services-cloud/src/lib/task/task-header/components/task-header-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/task/task-header/components/task-header-cloud.component.spec.ts
index a30859d75d..c1fafbe984 100644
--- a/lib/process-services-cloud/src/lib/task/task-header/components/task-header-cloud.component.spec.ts
+++ b/lib/process-services-cloud/src/lib/task/task-header/components/task-header-cloud.component.spec.ts
@@ -260,15 +260,45 @@ describe('TaskHeaderCloudComponent', () => {
fixture = TestBed.createComponent(TaskHeaderCloudComponent);
component = fixture.componentInstance;
service = TestBed.get(TaskCloudService);
- spyOn(service, 'getTaskById').and.returnValue(throwError('Task not found error'));
});
- it('should emit an error when getTaskById returns an error', async(() => {
- const taskErrorSpy = spyOn(component.taskError, 'emit');
- component.loadTaskDetailsById(component.appName, component.taskId);
- fixture.detectChanges();
- expect(taskErrorSpy).toHaveBeenCalledWith('Task not found error');
+ it('should emit an error when task can not be found', async(() => {
+ spyOn(service, 'getTaskById').and.returnValue(throwError('Task not found'));
+ component.error.subscribe((error) => {
+ expect(error).toEqual('Task not found');
+ });
+
+ component.appName = 'appName';
+ component.taskId = 'taskId';
+ component.ngOnChanges();
+ }));
+
+ it('should emit an error when app name and/or task id are not provided', async(() => {
+
+ component.error.subscribe((error) => {
+ expect(error).toEqual('App Name and Task Id are mandatory');
+ });
+
+ component.appName = '';
+ component.taskId = '';
+ component.ngOnChanges();
+
+ component.appName = 'app';
+ component.ngOnChanges();
+
+ component.appName = '';
+ component.taskId = 'taskId';
+ component.ngOnChanges();
+ }));
+
+ it('should call the loadTaskDetailsById when both app name and task id are provided', async(() => {
+ spyOn(component, 'loadTaskDetailsById');
+ component.appName = 'appName';
+ component.taskId = 'taskId';
+ component.ngOnChanges();
+ fixture.detectChanges();
+ expect(component.loadTaskDetailsById).toHaveBeenCalledWith(component.appName, component.taskId);
}));
});
});
diff --git a/lib/process-services-cloud/src/lib/task/task-header/components/task-header-cloud.component.ts b/lib/process-services-cloud/src/lib/task/task-header/components/task-header-cloud.component.ts
index 873874224b..74803d0f40 100644
--- a/lib/process-services-cloud/src/lib/task/task-header/components/task-header-cloud.component.ts
+++ b/lib/process-services-cloud/src/lib/task/task-header/components/task-header-cloud.component.ts
@@ -57,9 +57,9 @@ export class TaskHeaderCloudComponent implements OnInit, OnDestroy, OnChanges {
@Output()
unclaim: EventEmitter
= new EventEmitter();
- /** Emitted when the task has not been found. */
+ /** Emitted when the given task has errors. */
@Output()
- taskError: EventEmitter = new EventEmitter();
+ error: EventEmitter = new EventEmitter();
taskDetails: TaskDetailsCloudModel = new TaskDetailsCloudModel();
properties: CardViewItem[];
@@ -99,6 +99,8 @@ export class TaskHeaderCloudComponent implements OnInit, OnDestroy, OnChanges {
this.taskDetails = new TaskDetailsCloudModel();
if (this.appName && this.taskId) {
this.loadTaskDetailsById(this.appName, this.taskId);
+ } else {
+ this.error.emit('App Name and Task Id are mandatory');
}
}
@@ -112,7 +114,7 @@ export class TaskHeaderCloudComponent implements OnInit, OnDestroy, OnChanges {
this.refreshData();
}
},
- (err) => this.taskError.emit(err), () => {});
+ (err) => this.error.emit(err));
}
private initDefaultProperties() {