Test core plugins fall back to a default config
This commit is contained in:
parent
c84b188626
commit
4afb9e45e6
2 changed files with 49 additions and 2 deletions
|
|
@ -77,3 +77,48 @@ test('setting a plugin to an object configures that plugin', () => {
|
|||
{ plugin: 'backgroundPosition', options: {} },
|
||||
])
|
||||
})
|
||||
|
||||
test('plugins are configured with their default configuration if no custom config is provided', () => {
|
||||
const plugins = {
|
||||
fontSize: options => {
|
||||
return {
|
||||
plugin: 'fontSize',
|
||||
options,
|
||||
}
|
||||
},
|
||||
display: options => {
|
||||
return {
|
||||
plugin: 'display',
|
||||
options,
|
||||
}
|
||||
},
|
||||
backgroundPosition: options => {
|
||||
return {
|
||||
plugin: 'backgroundPosition',
|
||||
options,
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
const configuredPlugins = configurePlugins(plugins, {
|
||||
fontSize: {
|
||||
variants: ['responsive', 'hover'],
|
||||
values: { '12': '12px', '14': '14px', '16': '16px' },
|
||||
},
|
||||
backgroundPosition: {},
|
||||
}, {
|
||||
display: { variants: ['responsive'] },
|
||||
})
|
||||
|
||||
expect(configuredPlugins).toEqual([
|
||||
{
|
||||
plugin: 'fontSize',
|
||||
options: {
|
||||
variants: ['responsive', 'hover'],
|
||||
values: { '12': '12px', '14': '14px', '16': '16px' },
|
||||
},
|
||||
},
|
||||
{ plugin: 'display', options: { variants: ['responsive'] } },
|
||||
{ plugin: 'backgroundPosition', options: {} },
|
||||
])
|
||||
})
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
export default function(plugins, pluginConfig) {
|
||||
import _ from 'lodash'
|
||||
|
||||
export default function(plugins, pluginConfig, defaultPluginConfig = {}) {
|
||||
return Object.keys(plugins)
|
||||
.filter(pluginName => {
|
||||
return pluginConfig[pluginName] !== false
|
||||
})
|
||||
.map(pluginName => {
|
||||
return plugins[pluginName](pluginConfig[pluginName])
|
||||
return plugins[pluginName](_.get(pluginConfig, pluginName, defaultPluginConfig[pluginName]))
|
||||
})
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue