AAE-34478 Hide Open next task checkbox on claim screen (#10822)

This commit is contained in:
Fabian Kindgen 2025-04-25 14:16:31 +02:00 committed by GitHub
parent cb220968cf
commit dc35ef8a6f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 86 additions and 14 deletions

View File

@ -1,4 +1,4 @@
<div class="adf-user-task-cloud-container">
<div class="adf-user-task-cloud-container">
<div *ngIf="!loading; else loadingTemplate">
<ng-container [ngSwitch]="taskType">
<ng-container *ngSwitchCase="taskTypeEnum.Form">
@ -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 @@
<adf-empty-content
[icon]="'description'"
[title]="'ADF_CLOUD_TASK_FORM.EMPTY_FORM.TITLE'"
[subtitle]="'ADF_CLOUD_TASK_FORM.EMPTY_FORM.SUBTITLE'" />
[subtitle]="'ADF_CLOUD_TASK_FORM.EMPTY_FORM.SUBTITLE'"
/>
</mat-card-content>
<mat-card-actions class="adf-task-form-actions" align="end">
<mat-checkbox id="adf-form-open-next-task" *ngIf="showNextTaskCheckbox" [checked]="isNextTaskCheckboxChecked" (change)="onNextTaskCheckboxCheckedChanged($event)">{{'ADF_CLOUD_TASK_FORM.OPEN_NEXT_TASK.LABEL' | translate}}</mat-checkbox>
<mat-checkbox
id="adf-form-open-next-task"
*ngIf="showNextTaskCheckbox && canCompleteTask()"
[checked]="isNextTaskCheckboxChecked"
(change)="onNextTaskCheckboxCheckedChanged($event)"
>{{ 'ADF_CLOUD_TASK_FORM.OPEN_NEXT_TASK.LABEL' | translate }}
</mat-checkbox>
<span class="adf-card-actions-spacer"></span>
<ng-template [ngTemplateOutlet]="taskFormCloudButtons" />
<button
@ -80,12 +86,11 @@
color="primary"
id="adf-form-complete"
>
{{'ADF_CLOUD_TASK_FORM.EMPTY_FORM.BUTTONS.COMPLETE' | translate}}
{{ 'ADF_CLOUD_TASK_FORM.EMPTY_FORM.BUTTONS.COMPLETE' | translate }}
</button>
</mat-card-actions>
</mat-card>
</ng-container>
</ng-container>
</div>
</div>

View File

@ -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;
};
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);