From dc35ef8a6fdd59ec8bf815be429132d21a2ce19c Mon Sep 17 00:00:00 2001
From: Fabian Kindgen <39992669+fkindgen@users.noreply.github.com>
Date: Fri, 25 Apr 2025 14:16:31 +0200
Subject: [PATCH] AAE-34478 Hide Open next task checkbox on claim screen
(#10822)
---
.../user-task-cloud.component.html | 19 +++--
.../user-task-cloud.component.spec.ts | 81 +++++++++++++++++--
2 files changed, 86 insertions(+), 14 deletions(-)
diff --git a/lib/process-services-cloud/src/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.html b/lib/process-services-cloud/src/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.html
index f910790485..ba631c35c5 100644
--- a/lib/process-services-cloud/src/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.html
+++ b/lib/process-services-cloud/src/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.html
@@ -1,4 +1,4 @@
-
+
@@ -12,7 +12,7 @@
[showTitle]="showTitle"
[taskId]="taskId"
[taskDetails]="taskDetails"
- [showNextTaskCheckbox]="showNextTaskCheckbox"
+ [showNextTaskCheckbox]="showNextTaskCheckbox && canCompleteTask()"
[isNextTaskCheckboxChecked]="isNextTaskCheckboxChecked"
(cancelClick)="onCancelForm()"
(executeOutcome)="onExecuteOutcome($event)"
@@ -38,7 +38,6 @@
[showCancelButton]="showCancelButton"
[taskName]="taskDetails.name"
[taskId]="taskId"
-
(cancelTask)="onCancelClick()"
(claimTask)="onClaimTask()"
(error)="onError($event)"
@@ -63,10 +62,17 @@
+ [subtitle]="'ADF_CLOUD_TASK_FORM.EMPTY_FORM.SUBTITLE'"
+ />
- {{'ADF_CLOUD_TASK_FORM.OPEN_NEXT_TASK.LABEL' | translate}}
+ {{ 'ADF_CLOUD_TASK_FORM.OPEN_NEXT_TASK.LABEL' | translate }}
+
-
diff --git a/lib/process-services-cloud/src/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.spec.ts
index bcaba9c77c..0d9f31add8 100644
--- a/lib/process-services-cloud/src/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.spec.ts
+++ b/lib/process-services-cloud/src/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.spec.ts
@@ -482,28 +482,89 @@ describe('UserTaskCloudComponent', () => {
it('should allow controlling [open next task] checkbox visibility', () => {
taskDetails.formKey = 'form';
component.getTaskType();
+ component.taskId = 'taskId';
+ component.appName = 'app';
+
+ const spy = spyOn(taskCloudService, 'canCompleteTask');
const isCheckboxShown = () => {
const checkbox = fixture.debugElement.query(By.css('#adf-form-open-next-task'));
return !!checkbox;
};
- fixture.detectChanges();
+ const prepareTestCase = (testCase: {
+ showNextTaskCheckbox: boolean;
+ showCompleteButton: boolean;
+ readOnly: boolean;
+ canCompleteTask: boolean;
+ }): void => {
+ component.showNextTaskCheckbox = testCase.showNextTaskCheckbox;
+ component.showCompleteButton = testCase.showCompleteButton;
+ component.readOnly = testCase.readOnly;
+ spy.calls.reset();
+ spy.and.returnValue(testCase.canCompleteTask);
+ fixture.detectChanges();
+ };
+
+ prepareTestCase({ showNextTaskCheckbox: false, showCompleteButton: false, readOnly: false, canCompleteTask: false });
expect(isCheckboxShown()).toBeFalse();
- component.showNextTaskCheckbox = true;
- fixture.detectChanges();
+ prepareTestCase({ showNextTaskCheckbox: false, showCompleteButton: false, readOnly: false, canCompleteTask: true });
+ expect(isCheckboxShown()).toBeFalse();
+
+ prepareTestCase({ showNextTaskCheckbox: false, showCompleteButton: false, readOnly: true, canCompleteTask: false });
+ expect(isCheckboxShown()).toBeFalse();
+
+ prepareTestCase({ showNextTaskCheckbox: false, showCompleteButton: false, readOnly: true, canCompleteTask: true });
+ expect(isCheckboxShown()).toBeFalse();
+
+ prepareTestCase({ showNextTaskCheckbox: false, showCompleteButton: true, readOnly: false, canCompleteTask: false });
+ expect(isCheckboxShown()).toBeFalse();
+
+ prepareTestCase({ showNextTaskCheckbox: false, showCompleteButton: true, readOnly: false, canCompleteTask: true });
+ expect(isCheckboxShown()).toBeFalse();
+
+ prepareTestCase({ showNextTaskCheckbox: false, showCompleteButton: true, readOnly: true, canCompleteTask: false });
+ expect(isCheckboxShown()).toBeFalse();
+
+ prepareTestCase({ showNextTaskCheckbox: false, showCompleteButton: true, readOnly: true, canCompleteTask: true });
+ expect(isCheckboxShown()).toBeFalse();
+
+ prepareTestCase({ showNextTaskCheckbox: true, showCompleteButton: false, readOnly: false, canCompleteTask: false });
+ expect(isCheckboxShown()).toBeFalse();
+
+ prepareTestCase({ showNextTaskCheckbox: true, showCompleteButton: false, readOnly: false, canCompleteTask: true });
+ expect(isCheckboxShown()).toBeFalse();
+
+ prepareTestCase({ showNextTaskCheckbox: true, showCompleteButton: false, readOnly: true, canCompleteTask: false });
+ expect(isCheckboxShown()).toBeFalse();
+
+ prepareTestCase({ showNextTaskCheckbox: true, showCompleteButton: false, readOnly: true, canCompleteTask: true });
+ expect(isCheckboxShown()).toBeFalse();
+
+ prepareTestCase({ showNextTaskCheckbox: true, showCompleteButton: true, readOnly: true, canCompleteTask: false });
+ expect(isCheckboxShown()).toBeFalse();
+
+ prepareTestCase({ showNextTaskCheckbox: true, showCompleteButton: true, readOnly: true, canCompleteTask: true });
+ expect(isCheckboxShown()).toBeFalse();
+
+ prepareTestCase({ showNextTaskCheckbox: true, showCompleteButton: true, readOnly: false, canCompleteTask: false });
+ expect(isCheckboxShown()).toBeFalse();
+
+ prepareTestCase({ showNextTaskCheckbox: true, showCompleteButton: true, readOnly: false, canCompleteTask: true });
expect(isCheckboxShown()).toBeTrue();
-
- component.showNextTaskCheckbox = false;
- fixture.detectChanges();
- expect(isCheckboxShown()).toBeFalse();
});
it('should allow controlling [open next task] checkbox value', async () => {
taskDetails.formKey = 'form';
component.getTaskType();
+
+ component.taskId = 'taskId';
+ component.appName = 'app';
component.showNextTaskCheckbox = true;
+ component.showCompleteButton = true;
+ component.readOnly = false;
+ spyOn(taskCloudService, 'canCompleteTask').and.returnValue(true);
const isCheckboxChecked = async () => {
const checkbox = await loader.getHarness(MatCheckboxHarness.with({ selector: '#adf-form-open-next-task' }));
@@ -526,7 +587,13 @@ describe('UserTaskCloudComponent', () => {
taskDetails.formKey = 'form';
component.getTaskType();
+ component.taskId = 'taskId';
+ component.appName = 'app';
component.showNextTaskCheckbox = true;
+ component.showCompleteButton = true;
+ component.readOnly = false;
+ spyOn(taskCloudService, 'canCompleteTask').and.returnValue(true);
+
fixture.detectChanges();
const checkbox = await loader.getHarnessOrNull(MatCheckboxHarness);