diff --git a/e2e/process-services-cloud/form-field/people-group-of-people.e2e.ts b/e2e/process-services-cloud/form-field/people-group-of-people.e2e.ts index 4ace20ce88..2a2c9d33d1 100644 --- a/e2e/process-services-cloud/form-field/people-group-of-people.e2e.ts +++ b/e2e/process-services-cloud/form-field/people-group-of-people.e2e.ts @@ -110,11 +110,11 @@ describe('People and Group of people Widgets', () => { await expect (activePeopleField).toBe(false); }); - it('[C325004] Should be able to save only for valid input in the People field if the Required option is selected ', async () => { + it('[C325004] Should save button be enabled for both valid and invalid inputs in the People field', async () => { await formCloudComponentPage.setConfigToEditor(peopleRequiredFormMock); await peopleCloudWidget.isPeopleWidgetVisible(peopleValueString.peopleCloudWidgetRequiredField); - await expect(await formPage.isSaveButtonDisabled()).toBe(true); + await expect(await formPage.isSaveButtonDisabled()).toBe(false); await expect(await formPage.isValidationIconRed()).toBe(true); const requiredPeople = await peopleCloudWidget.getFieldValue(widgets.peopleCloudWidgetRequiredId); @@ -163,11 +163,11 @@ describe('People and Group of people Widgets', () => { await expect (activeGroupField).toBe(false); }); - it('[C325005] Should be able to save only for valid input in the Group of people field if the Required option is selected', async () => { + it('[C325005] Should save button be enabled for both valid and invalid inputs in the Group of people field', async () => { await formCloudComponentPage.setConfigToEditor(groupRequiredFormMock); await groupCloudWidget.isGroupWidgetVisible(groupValueString.groupCloudWidgetRequiredField); - await expect(await formPage.isSaveButtonDisabled()).toBe(true); + await expect(await formPage.isSaveButtonDisabled()).toBe(false); await expect(await formPage.isValidationIconRed()).toBe(true); const groupRequired = await groupCloudWidget.getGroupsFieldContent(); diff --git a/e2e/process-services/widgets/date-time-widget.e2e.ts b/e2e/process-services/widgets/date-time-widget.e2e.ts index 3208926612..e91b7c41b4 100644 --- a/e2e/process-services/widgets/date-time-widget.e2e.ts +++ b/e2e/process-services/widgets/date-time-widget.e2e.ts @@ -88,23 +88,16 @@ describe('Date and time widget', () => { }); it('[C268819] Should be able to set advanced settings for Date Time widget ', async () => { - await widget.dateTimeWidget().openDatepicker(app.FIELD.date_time_between_input); - await widget.dateTimeWidget().closeDataTimeWidget(); - await widget.dateTimeWidget().setDateTimeInput(app.FIELD.date_time_between_input, '20-03-17 07:30 PM'); - await taskPage.formFields().saveForm(); - await expect(await widget.dateTimeWidget().getErrorMessage(app.FIELD.date_time_between_input)).toContain('Can\'t be less than'); - - await widget.dateTimeWidget().openDatepicker(app.FIELD.date_time_between_input); await widget.dateTimeWidget().closeDataTimeWidget(); - await widget.dateTimeWidget().removeFromDatetimeWidget(app.FIELD.date_time_between_input); + await taskPage.formFields().completeForm(); + await expect(await widget.dateTimeWidget().getErrorMessage(app.FIELD.date_time_between_input)).toContain('Can\'t be less than'); await browser.refresh(); await widget.dateTimeWidget().setDateTimeInput(app.FIELD.date_time_between_input, '20-03-19 07:30 PM'); await widget.dateTimeWidget().closeDataTimeWidget(); - - await taskPage.formFields().saveForm(); + await taskPage.formFields().completeForm(); await expect(await widget.dateTimeWidget().getErrorMessage(app.FIELD.date_time_between_input)).toContain('Can\'t be greater than'); }); diff --git a/lib/core/form/components/form-base.component.ts b/lib/core/form/components/form-base.component.ts index a0d9834f0b..208ac80b7d 100644 --- a/lib/core/form/components/form-base.component.ts +++ b/lib/core/form/components/form-base.component.ts @@ -123,7 +123,7 @@ export abstract class FormBaseComponent { if (outcome) { if (outcome.name === FormOutcomeModel.SAVE_ACTION) { - return this.disableSaveButton ? false : this.form.isValid; + return !this.disableSaveButton; } if (outcome.name === FormOutcomeModel.COMPLETE_ACTION) { return this.disableCompleteButton ? false : this.form.isValid; diff --git a/lib/process-services-cloud/src/lib/form/components/form-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/form/components/form-cloud.component.spec.ts index 9f65505362..b06d9298d6 100644 --- a/lib/process-services-cloud/src/lib/form/components/form-cloud.component.spec.ts +++ b/lib/process-services-cloud/src/lib/form/components/form-cloud.component.spec.ts @@ -870,6 +870,15 @@ describe('FormCloudComponent', () => { expect(formComponent.isOutcomeButtonEnabled(saveOutcome)).toBeTruthy(); }); + it('should save outcome button be enabled when the form is invalid', () => { + const formModel = new FormModel(cloudFormMock); + formComponent.form = formModel; + formModel.isValid = false; + + const saveOutcome = formComponent.form.outcomes.find((outcome) => outcome.name === FormOutcomeModel.SAVE_ACTION); + expect(formComponent.isOutcomeButtonEnabled(saveOutcome)).toBeTruthy(); + }); + it('should disable start process outcome button when disableStartProcessButton is true', () => { const formModel = new FormModel(cloudFormMock); formComponent.form = formModel; diff --git a/lib/process-services/src/lib/form/form.component.spec.ts b/lib/process-services/src/lib/form/form.component.spec.ts index a1ca65eefb..65d66d077f 100644 --- a/lib/process-services/src/lib/form/form.component.spec.ts +++ b/lib/process-services/src/lib/form/form.component.spec.ts @@ -904,7 +904,7 @@ describe('FormComponent', () => { expect(formComponent.isOutcomeButtonEnabled(saveOutcome)).toBeFalsy(); }); - it('should disable save outcome button when the form is invalid', () => { + it('should save outcome button be enabled when the form is invalid', () => { const formModel = new FormModel(); formComponent.form = formModel; @@ -926,7 +926,7 @@ describe('FormComponent', () => { name: FormOutcomeModel.SAVE_ACTION }); - expect(formComponent.isOutcomeButtonEnabled(saveOutcome)).toBeFalsy(); + expect(formComponent.isOutcomeButtonEnabled(saveOutcome)).toBeTruthy(); }); it('should disable start process outcome button when disableStartProcessButton is true', () => {