Remove special "modules" merge behavior

Modules key no longer actually exists in the config so this is pointless.
This commit is contained in:
Adam Wathan 2019-01-24 08:06:46 -05:00
parent 3d2a598c0e
commit f10f1825ef
2 changed files with 4 additions and 100 deletions

View File

@ -1,28 +1,23 @@
import mergeConfigWithDefaults from '../src/util/mergeConfigWithDefaults'
test('user top-level keys override default top-level keys except modules', () => {
test('user top-level keys override default top-level keys', () => {
const userConfig = {
modules: {},
prefix: 'tw-',
important: true,
}
const defaultConfig = {
modules: {
flexbox: ['responsive'],
},
prefix: '-',
important: false,
separator: ':',
}
const result = mergeConfigWithDefaults(userConfig, defaultConfig)
expect(result).toEqual({
modules: {
flexbox: ['responsive'],
},
prefix: 'tw-',
important: true,
separator: ':',
})
})
@ -50,73 +45,3 @@ test('missing top level keys are pulled from the default config', () => {
modules: {},
})
})
test('user modules are merged with default modules', () => {
const userConfig = {
modules: { flexbox: false },
}
const defaultConfig = {
modules: {
flexbox: ['responsive'],
textAlign: ['responsive'],
},
}
const result = mergeConfigWithDefaults(userConfig, defaultConfig)
expect(result).toEqual({
modules: {
flexbox: false,
textAlign: ['responsive'],
},
})
})
test('setting modules to "all" creates all variants for all modules', () => {
const userConfig = {
modules: 'all',
}
const defaultConfig = {
modules: {
flexbox: ['responsive'],
textAlign: ['hover'],
textColors: ['focus'],
},
}
const result = mergeConfigWithDefaults(userConfig, defaultConfig)
expect(result).toEqual({
modules: {
flexbox: ['responsive', 'group-hover', 'hover', 'focus-within', 'focus', 'active'],
textAlign: ['responsive', 'group-hover', 'hover', 'focus-within', 'focus', 'active'],
textColors: ['responsive', 'group-hover', 'hover', 'focus-within', 'focus', 'active'],
},
})
})
test('setting modules to an array of variants applies those variants to all modules', () => {
const userConfig = {
modules: ['responsive', 'focus', 'hover', 'custom-variant'],
}
const defaultConfig = {
modules: {
flexbox: ['responsive'],
textAlign: ['hover'],
textColors: ['focus'],
},
}
const result = mergeConfigWithDefaults(userConfig, defaultConfig)
expect(result).toEqual({
modules: {
flexbox: ['responsive', 'focus', 'hover', 'custom-variant'],
textAlign: ['responsive', 'focus', 'hover', 'custom-variant'],
textColors: ['responsive', 'focus', 'hover', 'custom-variant'],
},
})
})

View File

@ -1,26 +1,5 @@
import _ from 'lodash'
function mergeModules(userModules, defaultModules) {
if (_.isArray(userModules)) {
return _.mapValues(defaultModules, () => userModules)
}
if (userModules === 'all') {
return _.mapValues(defaultModules, () => [
'responsive',
'group-hover',
'hover',
'focus-within',
'focus',
'active',
])
}
return _.defaults(userModules, defaultModules)
}
export default function(userConfig, defaultConfig) {
_.defaults(userConfig, defaultConfig)
userConfig.modules = mergeModules(userConfig.modules, defaultConfig.modules)
return userConfig
return _.defaults(userConfig, defaultConfig)
}