[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
This commit is contained in:
mcchrys
2019-07-26 18:57:03 +05:30
committed by Maurizio Vitale
parent 479416861f
commit 795bdda4e4
5 changed files with 14 additions and 5 deletions

View File

@@ -146,11 +146,12 @@ describe('Form widgets', () => {
}); });
it('[C272783] Should display displayText and displayValue in form', () => { it('[C272783] Should display displayText and displayValue in form', () => {
expect(widget.displayTextWidget().getFieldLabel(appFields.displayText_id)) expect(widget.displayTextWidget().getFieldLabel(appFields.displayText_id))
.toEqual(formInstance.getWidgetBy('id', appFields.displayText_id).value); .toEqual(formInstance.getWidgetBy('id', appFields.displayText_id).value);
expect(widget.displayValueWidget().getFieldLabel(appFields.displayValue_id)) 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', () => { it('[C272784] Should display typeahead and header in form', () => {

View File

@@ -20,7 +20,8 @@ import {
FormFieldModel, FormFieldModel,
FormFieldTypes, FormFieldTypes,
UnknownWidgetComponent, UnknownWidgetComponent,
UploadWidgetComponent UploadWidgetComponent,
TextWidgetComponent
} from './../components/widgets/index'; } from './../components/widgets/index';
import { FormRenderingService } from './form-rendering.service'; import { FormRenderingService } from './form-rendering.service';
@@ -55,6 +56,12 @@ describe('FormRenderingService', () => {
expect(type).toBe(UnknownWidgetComponent); 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', () => { it('should fallback to default resolver when field type missing', () => {
const resolver = service.getComponentTypeResolver(null); const resolver = service.getComponentTypeResolver(null);
const type = resolver(null); const type = resolver(null);

View File

@@ -58,6 +58,7 @@ export class FormRenderingService extends DynamicComponentMapper {
'radio-buttons': DynamicComponentResolver.fromType(RadioButtonsWidgetComponent), 'radio-buttons': DynamicComponentResolver.fromType(RadioButtonsWidgetComponent),
'hyperlink': DynamicComponentResolver.fromType(HyperlinkWidgetComponent), 'hyperlink': DynamicComponentResolver.fromType(HyperlinkWidgetComponent),
'readonly-text': DynamicComponentResolver.fromType(DisplayTextWidgetComponentComponent), 'readonly-text': DynamicComponentResolver.fromType(DisplayTextWidgetComponentComponent),
'readonly': DynamicComponentResolver.fromType(TextWidgetComponent),
'typeahead': DynamicComponentResolver.fromType(TypeaheadWidgetComponent), 'typeahead': DynamicComponentResolver.fromType(TypeaheadWidgetComponent),
'people': DynamicComponentResolver.fromType(PeopleWidgetComponent), 'people': DynamicComponentResolver.fromType(PeopleWidgetComponent),
'functional-group': DynamicComponentResolver.fromType(FunctionalGroupWidgetComponent), 'functional-group': DynamicComponentResolver.fromType(FunctionalGroupWidgetComponent),

View File

@@ -21,7 +21,7 @@ import { by } from 'protractor';
export class DisplayValueWidget { export class DisplayValueWidget {
formFields = new FormFields(); formFields = new FormFields();
labelLocator = by.css('span[class*="unknown-text"]'); labelLocator = by.css("label[class*='adf-label']");
inputLocator = by.css('input'); inputLocator = by.css('input');
getFieldLabel(fieldId) { getFieldLabel(fieldId) {

View File

@@ -18,8 +18,8 @@
import { MultilineTextWidget } from './multilineTextWidget'; import { MultilineTextWidget } from './multilineTextWidget';
import { HeaderWidget } from './headerWidget'; import { HeaderWidget } from './headerWidget';
import { DisplayTextWidget } from './displayTextWidget'; import { DisplayTextWidget } from './displayTextWidget';
import { AttachFileWidget } from './attachFileWidget';
import { DisplayValueWidget } from './displayValueWidget'; import { DisplayValueWidget } from './displayValueWidget';
import { AttachFileWidget } from './attachFileWidget';
import { RadioButtonsWidget } from './radioButtonsWidget'; import { RadioButtonsWidget } from './radioButtonsWidget';
import { HyperlinkWidget } from './hyperlinkWidget'; import { HyperlinkWidget } from './hyperlinkWidget';
import { DropdownWidget } from './dropdownWidget'; import { DropdownWidget } from './dropdownWidget';