diff --git a/__tests__/mergeConfigWithDefaults.test.js b/__tests__/mergeConfigWithDefaults.test.js index e9bf3f1d1..135681356 100644 --- a/__tests__/mergeConfigWithDefaults.test.js +++ b/__tests__/mergeConfigWithDefaults.test.js @@ -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'], - }, - }) -}) diff --git a/src/util/mergeConfigWithDefaults.js b/src/util/mergeConfigWithDefaults.js index 561f1f347..4be7a1f99 100644 --- a/src/util/mergeConfigWithDefaults.js +++ b/src/util/mergeConfigWithDefaults.js @@ -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) }