diff --git a/src/providers/formlyConfig.js b/src/providers/formlyConfig.js index 60398d52..49d357cc 100644 --- a/src/providers/formlyConfig.js +++ b/src/providers/formlyConfig.js @@ -15,6 +15,7 @@ function formlyConfig(formlyUsabilityProvider, formlyErrorAndWarningsUrlPrefix, angular.extend(this, { setType, getType, + getTypes, getTypeHeritage, setWrapper, getWrapper, @@ -161,6 +162,10 @@ function formlyConfig(formlyUsabilityProvider, formlyErrorAndWarningsUrlPrefix, } } + function getTypes() { + return typeMap + } + function getTypeHeritage(parent) { const heritage = [] let type = parent diff --git a/src/providers/formlyConfig.test.js b/src/providers/formlyConfig.test.js index 6d68edfd..11414ce8 100644 --- a/src/providers/formlyConfig.test.js +++ b/src/providers/formlyConfig.test.js @@ -185,8 +185,8 @@ describe('formlyConfig', () => { }) - describe('setType/getType', () => { - let getterFn, setterFn + describe('setType/getType/getTypes', () => { + let getterFn, setterFn, getTypesFn const name = 'input' const template = '' const templateUrl = '/input.html' @@ -195,6 +195,7 @@ describe('formlyConfig', () => { beforeEach(inject(function(formlyConfig) { getterFn = formlyConfig.getType setterFn = formlyConfig.setType + getTypesFn = formlyConfig.getTypes })) describe('\(^O^)/ path', () => { @@ -217,6 +218,14 @@ describe('formlyConfig', () => { expect(getterFn('type2').templateUrl).to.equal(templateUrl) }) + it('should expose the mapping from type name to config', () => { + setterFn([ + {name, template}, + {name: 'type2', templateUrl}, + ]) + expect(getTypesFn()).to.eql({[name]: getterFn(name), type2: getterFn('type2')}) + }) + it('should allow you to set a wrapper as a string', () => { setterFn({name, template, wrapper}) expect(getterFn(name).wrapper).to.equal(wrapper)