Test plugins can add base styles with object syntax

This commit is contained in:
Adam Wathan 2019-02-07 14:05:00 -05:00
parent b8f965179c
commit 1d0b4cd31c
2 changed files with 32 additions and 0 deletions

View File

@ -254,6 +254,33 @@ test('plugins can create components with object syntax', () => {
`)
})
test('plugins can add base styles with object syntax', () => {
const { base } = processPlugins(
[
function({ addBase }) {
addBase({
'img': {
maxWidth: '100%',
},
'button': {
fontFamily: 'inherit',
},
})
},
],
makeConfig()
)
expect(css(base)).toMatchCss(`
img {
max-width: 100%
}
button {
font-family: inherit
}
`)
})
test('plugins can create components with raw PostCSS nodes', () => {
const { components, utilities } = processPlugins(
[

View File

@ -16,6 +16,7 @@ function parseStyles(styles) {
}
export default function(plugins, config) {
const pluginBaseStyles = []
const pluginComponents = []
const pluginUtilities = []
const pluginVariantGenerators = {}
@ -63,6 +64,9 @@ export default function(plugins, config) {
pluginComponents.push(...styles.nodes)
},
addBase: (baseStyles) => {
pluginBaseStyles.push(...parseStyles(baseStyles))
},
addVariant: (name, generator) => {
pluginVariantGenerators[name] = generateVariantFunction(generator)
},
@ -70,6 +74,7 @@ export default function(plugins, config) {
})
return {
base: pluginBaseStyles,
components: pluginComponents,
utilities: pluginUtilities,
variantGenerators: pluginVariantGenerators,