Compare commits
No commits in common. "master" and "add-license-1" have entirely different histories.
master
...
add-licens
4 changed files with 35 additions and 51 deletions
|
@ -1,6 +1,6 @@
|
||||||
# Testing Tailwind CSS Plugins with Jest
|
# Testing Tailwind CSS Plugins with Jest
|
||||||
|
|
||||||
An example of how to use [Jest][jest], a JavaScript testing framework, for testing [Tailwind CSS][tailwind] plugins.
|
WIP
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
@ -8,8 +8,4 @@ MIT
|
||||||
|
|
||||||
## Author
|
## Author
|
||||||
|
|
||||||
[Oliver Davies][website] - Full Stack Developer
|
[Oliver Davies](https://www.oliverdavies.uk) - Full Stack Developer
|
||||||
|
|
||||||
[jest]: https://jestjs.io
|
|
||||||
[tailwind]: https://tailwindcss.com
|
|
||||||
[website]: https://www.oliverdavies.uk
|
|
||||||
|
|
4
index.js
4
index.js
|
@ -1,7 +1,9 @@
|
||||||
module.exports = (variants) => ({ addUtilities }) => {
|
module.exports = (variants) => {
|
||||||
|
return function ({ addUtilities }) {
|
||||||
addUtilities({
|
addUtilities({
|
||||||
'.test': {
|
'.test': {
|
||||||
display: 'block'
|
display: 'block'
|
||||||
}
|
}
|
||||||
}, variants)
|
}, variants)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -6,10 +6,7 @@
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "jest"
|
"test": "jest"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": ["tailwindcss", "jest"],
|
||||||
"tailwindcss",
|
|
||||||
"jest"
|
|
||||||
],
|
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Oliver Davies",
|
"name": "Oliver Davies",
|
||||||
"url" : "https://www.oliverdavies.uk"
|
"url" : "https://www.oliverdavies.uk"
|
||||||
|
@ -20,7 +17,8 @@
|
||||||
"jest-matcher-css": "^1.0.3"
|
"jest-matcher-css": "^1.0.3"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"lodash": "^4.17.11",
|
||||||
"postcss": "^7.0.14",
|
"postcss": "^7.0.14",
|
||||||
"tailwindcss": "^1.0.1"
|
"tailwindcss": "^1.0.0-beta.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
50
test.js
50
test.js
|
@ -1,53 +1,41 @@
|
||||||
|
const _ = require('lodash')
|
||||||
const cssMatcher = require('jest-matcher-css')
|
const cssMatcher = require('jest-matcher-css')
|
||||||
const defaultConfig = require('tailwindcss/defaultConfig')
|
const defaultConfig = require('tailwindcss/defaultConfig')
|
||||||
const plugin = require('./index')
|
const plugin = require('./index.js')
|
||||||
const postcss = require('postcss')
|
const postcss = require('postcss')
|
||||||
const tailwindcss = require('tailwindcss')
|
const tailwindcss = require('tailwindcss')
|
||||||
|
|
||||||
function run(options = {}) {
|
const disableCorePlugins = () => {
|
||||||
|
return _.mapValues(defaultConfig.variants, plugin => {
|
||||||
|
return false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const generatePluginCss = () => {
|
||||||
return postcss(
|
return postcss(
|
||||||
tailwindcss({
|
tailwindcss({
|
||||||
corePlugins: false,
|
corePlugins: disableCorePlugins(),
|
||||||
plugins: [plugin(options)]
|
plugins: [plugin()]
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
.process('@tailwind utilities;', {
|
.process('@tailwind utilities;', {
|
||||||
from: undefined
|
from: undefined
|
||||||
})
|
})
|
||||||
|
.then(result => {
|
||||||
|
return result.css
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
expect.extend({
|
expect.extend({
|
||||||
toMatchCss: cssMatcher
|
toMatchCss: cssMatcher
|
||||||
})
|
})
|
||||||
|
|
||||||
test('it generates the correct classes with no variants', () => {
|
test('it generates classes', () => {
|
||||||
const output = `
|
return generatePluginCss().then(css => {
|
||||||
|
expect(css).toMatchCss(`
|
||||||
.test {
|
.test {
|
||||||
display: block
|
display: block;
|
||||||
}
|
}
|
||||||
`
|
`)
|
||||||
|
|
||||||
run().then(result => {
|
|
||||||
expect(result.css).toMatchCss(output)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
test('it generates the correct classes with variants', () => {
|
|
||||||
const output = `
|
|
||||||
.test {
|
|
||||||
display: block
|
|
||||||
}
|
|
||||||
|
|
||||||
.hover\\:test:hover {
|
|
||||||
display: block
|
|
||||||
}
|
|
||||||
|
|
||||||
.focus\\:test:focus {
|
|
||||||
display: block
|
|
||||||
}
|
|
||||||
`
|
|
||||||
|
|
||||||
run({ variants: ['hover', 'focus'] }).then(result => {
|
|
||||||
expect(result.css).toMatchCss(output)
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue