[ADF-1997] override custom form widgets by default (#3346)

* override custom form widgets by default

* update tests
This commit is contained in:
Denys Vuika
2018-05-18 12:36:50 +01:00
committed by Eugenio Romano
parent ace38942af
commit 592ad185e7
2 changed files with 10 additions and 3 deletions

View File

@@ -85,11 +85,12 @@ describe('FormRenderingService', () => {
).toThrowError('resolver is null or not defined'); ).toThrowError('resolver is null or not defined');
}); });
it('should fail overriding existing resolver without explicit flag', () => { it('should fail overriding existing resolver with explicit flag', () => {
expect( expect(
() => service.setComponentTypeResolver( () => service.setComponentTypeResolver(
FormFieldTypes.TEXT, FormFieldTypes.TEXT,
DynamicComponentResolver.fromType(UnknownWidgetComponent) DynamicComponentResolver.fromType(UnknownWidgetComponent),
false
) )
).toThrowError('already mapped, use override option if you intend replacing existing mapping.'); ).toThrowError('already mapped, use override option if you intend replacing existing mapping.');
}); });
@@ -100,6 +101,12 @@ describe('FormRenderingService', () => {
expect(service.getComponentTypeResolver(FormFieldTypes.TEXT)).toBe(customResolver); expect(service.getComponentTypeResolver(FormFieldTypes.TEXT)).toBe(customResolver);
}); });
it('should override existing resolver without explicit flag', () => {
let customResolver = DynamicComponentResolver.fromType(UnknownWidgetComponent);
service.setComponentTypeResolver(FormFieldTypes.TEXT, customResolver);
expect(service.getComponentTypeResolver(FormFieldTypes.TEXT)).toBe(customResolver);
});
it('should return default value when resolving with no field', () => { it('should return default value when resolving with no field', () => {
expect(service.resolveComponentType(null)).toBe(UnknownWidgetComponent); expect(service.resolveComponentType(null)).toBe(UnknownWidgetComponent);
}); });

View File

@@ -50,7 +50,7 @@ export abstract class DynamicComponentMapper {
* @param resolver The new resolver function * @param resolver The new resolver function
* @param override The new resolver will only replace an existing one if this parameter is true * @param override The new resolver will only replace an existing one if this parameter is true
*/ */
setComponentTypeResolver(type: string, resolver: DynamicComponentResolveFunction, override: boolean = false) { setComponentTypeResolver(type: string, resolver: DynamicComponentResolveFunction, override: boolean = true) {
if (!type) { if (!type) {
throw new Error(`type is null or not defined`); throw new Error(`type is null or not defined`);
} }