mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2026-09-09 18:03:21 +00:00
HXIDP-5126 Fix adf-cloud-task-screen re-initialization on completing (#11291)
* HXIDP-5126 Fix adf-cloud-task-screen re-initialization on completing * Make task type optional
This commit is contained in:
+2
-2
@@ -47,7 +47,7 @@
|
|||||||
(cancelTask)="onCancelClick()"
|
(cancelTask)="onCancelClick()"
|
||||||
(claimTask)="onClaimTask()"
|
(claimTask)="onClaimTask()"
|
||||||
(error)="onError($event)"
|
(error)="onError($event)"
|
||||||
(taskCompleted)="onCompleteTask($event)"
|
(taskCompleted)="onCompleteTask($event, taskType)"
|
||||||
(taskSaved)="onFormSaved()"
|
(taskSaved)="onFormSaved()"
|
||||||
(unclaimTask)="onUnclaimTask()"
|
(unclaimTask)="onUnclaimTask()"
|
||||||
(nextTaskCheckboxCheckedChanged)="onNextTaskCheckboxCheckedChanged($event)"
|
(nextTaskCheckboxCheckedChanged)="onNextTaskCheckboxCheckedChanged($event)"
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
adf-cloud-complete-task
|
adf-cloud-complete-task
|
||||||
[appName]="appName"
|
[appName]="appName"
|
||||||
[taskId]="taskId"
|
[taskId]="taskId"
|
||||||
(success)="onCompleteTask()"
|
(success)="onCompleteTask(false, taskType)"
|
||||||
(error)="onError($event)"
|
(error)="onError($event)"
|
||||||
color="primary"
|
color="primary"
|
||||||
id="adf-form-complete"
|
id="adf-form-complete"
|
||||||
|
|||||||
+38
@@ -760,4 +760,42 @@ describe('UserTaskCloudComponent', () => {
|
|||||||
|
|
||||||
expect(component.formLoaded.emit).toHaveBeenCalledWith(mockForm);
|
expect(component.formLoaded.emit).toHaveBeenCalledWith(mockForm);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should not load task for task screen on complete', () => {
|
||||||
|
component.taskId = 't1';
|
||||||
|
component.taskType = 'screen';
|
||||||
|
component.taskDetails = taskDetails;
|
||||||
|
component.taskDetails.processInstanceId = 'p1';
|
||||||
|
component.taskDetails.rootProcessInstanceId = 'rp1';
|
||||||
|
fixture.detectChanges();
|
||||||
|
|
||||||
|
spyOn(component.taskCompleted, 'emit');
|
||||||
|
const onCompleteSpy = spyOn(component, 'onCompleteTask').and.callThrough();
|
||||||
|
const screenDebugEl = fixture.debugElement.query(By.css('adf-cloud-task-screen'));
|
||||||
|
expect(screenDebugEl).toBeTruthy('adf-cloud-task-screen should be present in template');
|
||||||
|
|
||||||
|
const screenCompInstance = screenDebugEl.componentInstance as TaskScreenCloudMockComponent;
|
||||||
|
const payload = true;
|
||||||
|
|
||||||
|
screenCompInstance.taskCompleted.emit(payload);
|
||||||
|
fixture.detectChanges();
|
||||||
|
|
||||||
|
expect(onCompleteSpy).toHaveBeenCalledWith(payload, 'screen');
|
||||||
|
expect(component.taskCompleted.emit).toHaveBeenCalledWith(payload);
|
||||||
|
expect(getTaskSpy).not.toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should load task for non task screen on complete', () => {
|
||||||
|
spyOn(component.taskCompleted, 'emit');
|
||||||
|
|
||||||
|
component.onCompleteTask(true, 'form');
|
||||||
|
|
||||||
|
expect(component.taskCompleted.emit).toHaveBeenCalledTimes(1);
|
||||||
|
expect(getTaskSpy).toHaveBeenCalledTimes(1);
|
||||||
|
|
||||||
|
component.onCompleteTask(true, '');
|
||||||
|
|
||||||
|
expect(component.taskCompleted.emit).toHaveBeenCalledTimes(2);
|
||||||
|
expect(getTaskSpy).toHaveBeenCalledTimes(2);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
+3
-1
@@ -247,8 +247,10 @@ export class UserTaskCloudComponent implements OnInit, OnChanges {
|
|||||||
this.taskClaimed.emit(this.taskId);
|
this.taskClaimed.emit(this.taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
onCompleteTask(openNextTask: boolean = false): void {
|
onCompleteTask(openNextTask: boolean = false, taskType?: UserTaskType): void {
|
||||||
|
if (!taskType || taskType !== UserTaskContentType.Screen) {
|
||||||
this.loadTask();
|
this.loadTask();
|
||||||
|
}
|
||||||
this.taskCompleted.emit(openNextTask);
|
this.taskCompleted.emit(openNextTask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user