From 795bdda4e4c84bd0faf72ef5059684a5cf236a5d Mon Sep 17 00:00:00 2001 From: mcchrys <48274621+mcchrys@users.noreply.github.com> Date: Fri, 26 Jul 2019 18:57:03 +0530 Subject: [PATCH] [ADF-4572] Display value widget display issue when it has no value (#4943) * [ADF-4572] Display value widget display issue when it has no value * Added readonly type to form-render * Added unit test case * * Fixed ee test * * Updating tests to return textWidget for display value * * Making changes to displayValueWidget css selector * * Updated case to check display value from api --- e2e/process-services/form-widgets-component.e2e.ts | 5 +++-- lib/core/form/services/form-rendering.service.spec.ts | 9 ++++++++- lib/core/form/services/form-rendering.service.ts | 1 + .../lib/core/pages/form/widgets/displayValueWidget.ts | 2 +- lib/testing/src/lib/core/pages/form/widgets/widget.ts | 2 +- 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/e2e/process-services/form-widgets-component.e2e.ts b/e2e/process-services/form-widgets-component.e2e.ts index 53d508a9a8..204537f1d4 100644 --- a/e2e/process-services/form-widgets-component.e2e.ts +++ b/e2e/process-services/form-widgets-component.e2e.ts @@ -146,11 +146,12 @@ describe('Form widgets', () => { }); it('[C272783] Should display displayText and displayValue in form', () => { - expect(widget.displayTextWidget().getFieldLabel(appFields.displayText_id)) .toEqual(formInstance.getWidgetBy('id', appFields.displayText_id).value); expect(widget.displayValueWidget().getFieldLabel(appFields.displayValue_id)) - .toEqual(formInstance.getWidgetBy('id', appFields.displayValue_id).value || 'Unknown type: readonly'); + .toEqual(formInstance.getWidgetBy('id', appFields.displayValue_id).value || 'Display value' || ''); + expect(widget.displayValueWidget().getFieldValue(appFields.displayValue_id)) + .toEqual(formInstance.getWidgetBy('id', appFields.displayValue_id).value || ''); }); it('[C272784] Should display typeahead and header in form', () => { diff --git a/lib/core/form/services/form-rendering.service.spec.ts b/lib/core/form/services/form-rendering.service.spec.ts index 5e08dba434..4fa5358317 100644 --- a/lib/core/form/services/form-rendering.service.spec.ts +++ b/lib/core/form/services/form-rendering.service.spec.ts @@ -20,7 +20,8 @@ import { FormFieldModel, FormFieldTypes, UnknownWidgetComponent, - UploadWidgetComponent + UploadWidgetComponent, + TextWidgetComponent } from './../components/widgets/index'; import { FormRenderingService } from './form-rendering.service'; @@ -55,6 +56,12 @@ describe('FormRenderingService', () => { expect(type).toBe(UnknownWidgetComponent); }); + it('should resolve Text widget for readonly field type', () => { + const resolver = service.getComponentTypeResolver('readonly'); + const type = resolver(null); + expect(type).toBe(TextWidgetComponent); + }); + it('should fallback to default resolver when field type missing', () => { const resolver = service.getComponentTypeResolver(null); const type = resolver(null); diff --git a/lib/core/form/services/form-rendering.service.ts b/lib/core/form/services/form-rendering.service.ts index a3470522c4..23e1fd2831 100644 --- a/lib/core/form/services/form-rendering.service.ts +++ b/lib/core/form/services/form-rendering.service.ts @@ -58,6 +58,7 @@ export class FormRenderingService extends DynamicComponentMapper { 'radio-buttons': DynamicComponentResolver.fromType(RadioButtonsWidgetComponent), 'hyperlink': DynamicComponentResolver.fromType(HyperlinkWidgetComponent), 'readonly-text': DynamicComponentResolver.fromType(DisplayTextWidgetComponentComponent), + 'readonly': DynamicComponentResolver.fromType(TextWidgetComponent), 'typeahead': DynamicComponentResolver.fromType(TypeaheadWidgetComponent), 'people': DynamicComponentResolver.fromType(PeopleWidgetComponent), 'functional-group': DynamicComponentResolver.fromType(FunctionalGroupWidgetComponent), diff --git a/lib/testing/src/lib/core/pages/form/widgets/displayValueWidget.ts b/lib/testing/src/lib/core/pages/form/widgets/displayValueWidget.ts index 1d95141f39..409e3c3587 100644 --- a/lib/testing/src/lib/core/pages/form/widgets/displayValueWidget.ts +++ b/lib/testing/src/lib/core/pages/form/widgets/displayValueWidget.ts @@ -21,7 +21,7 @@ import { by } from 'protractor'; export class DisplayValueWidget { formFields = new FormFields(); - labelLocator = by.css('span[class*="unknown-text"]'); + labelLocator = by.css("label[class*='adf-label']"); inputLocator = by.css('input'); getFieldLabel(fieldId) { diff --git a/lib/testing/src/lib/core/pages/form/widgets/widget.ts b/lib/testing/src/lib/core/pages/form/widgets/widget.ts index 38c151f3a1..ccf417e807 100644 --- a/lib/testing/src/lib/core/pages/form/widgets/widget.ts +++ b/lib/testing/src/lib/core/pages/form/widgets/widget.ts @@ -18,8 +18,8 @@ import { MultilineTextWidget } from './multilineTextWidget'; import { HeaderWidget } from './headerWidget'; import { DisplayTextWidget } from './displayTextWidget'; -import { AttachFileWidget } from './attachFileWidget'; import { DisplayValueWidget } from './displayValueWidget'; +import { AttachFileWidget } from './attachFileWidget'; import { RadioButtonsWidget } from './radioButtonsWidget'; import { HyperlinkWidget } from './hyperlinkWidget'; import { DropdownWidget } from './dropdownWidget';