diff --git a/.eslintrc.json b/.eslintrc.json index 17b5cc9b69..686ff5121b 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -89,7 +89,14 @@ "rxjs/no-subject-unsubscribe": "error", "rxjs/no-subject-value": "error", "rxjs/no-unsafe-takeuntil": "error", - "unicorn/filename-case": "error" + "unicorn/filename-case": "error", + "@typescript-eslint/no-unused-expressions": [ + "error", + { + "allowShortCircuit": true, + "allowTernary": true + } + ] } }, { diff --git a/lib/process-services-cloud/src/lib/form/components/widgets/dropdown/dropdown-cloud.widget.spec.ts b/lib/process-services-cloud/src/lib/form/components/widgets/dropdown/dropdown-cloud.widget.spec.ts index df87d5b005..70ebc0169c 100644 --- a/lib/process-services-cloud/src/lib/form/components/widgets/dropdown/dropdown-cloud.widget.spec.ts +++ b/lib/process-services-cloud/src/lib/form/components/widgets/dropdown/dropdown-cloud.widget.spec.ts @@ -592,13 +592,15 @@ describe('DropdownCloudWidgetComponent', () => { entries: mockConditionalEntries } }); - const updateFormSpy = spyOn(widget.field, 'updateForm'); - const mockParentDropdown = { id: 'parentDropdown', value: 'IT' }; + const updateFormSpy = spyOn(widget.field, 'updateForm').and.callThrough(); + const mockParentDropdown = { id: 'parentDropdown', value: 'IT', validate: (): boolean => true }; spyOn(widget.field.form, 'getFormFields').and.returnValue([mockParentDropdown]); + widget.field.value = 'MI'; fixture.detectChanges(); expect(updateFormSpy).toHaveBeenCalled(); expect(widget.field.options).toEqual(mockConditionalEntries[1].options); + expect(widget.field.form.values).toEqual({ 'child-dropdown-id': { id: 'MI', name: 'MILAN' }}); }); it('should load the selection of a rest type linked dropdown', () => { diff --git a/lib/process-services-cloud/src/lib/form/components/widgets/dropdown/dropdown-cloud.widget.ts b/lib/process-services-cloud/src/lib/form/components/widgets/dropdown/dropdown-cloud.widget.ts index 8925ccd036..d6e2f7bc22 100644 --- a/lib/process-services-cloud/src/lib/form/components/widgets/dropdown/dropdown-cloud.widget.ts +++ b/lib/process-services-cloud/src/lib/form/components/widgets/dropdown/dropdown-cloud.widget.ts @@ -135,11 +135,7 @@ export class DropdownCloudWidgetComponent extends WidgetComponent implements OnI private parentValueChanged(value: string) { if (value && !this.isDefaultValue(value)) { - if (this.isValidRestType()) { - this.persistFieldOptionsFromRestApi(); - } else { - this.persistFieldOptionsFromManualList(value); - } + this.isValidRestType() ? this.persistFieldOptionsFromRestApi() : this.persistFieldOptionsFromManualList(value); } else if (this.isDefaultValue(value)) { this.resetRestApiErrorMessage(); this.addDefaultOption(); @@ -165,6 +161,7 @@ export class DropdownCloudWidgetComponent extends WidgetComponent implements OnI if (ruleEntry.key === value) { this.field.options = ruleEntry.options; this.resetInvalidValue(); + this.field.updateForm(); } }); }