stylelint-tape lets you test stylelint plugins.
Add stylelint-tape to your project:
npm install stylelint-tape --save-dev
Add a .tape.js
file with tests:
module.exports = {
'your/rule': [
// test the # of warnings
{
source: 'body { top: 0 }',
warnings: 1
},
// test for specific warnings
{
source: 'body { top: 0; left: 0 }',
warnings: [
'Unexpected "top" property.',
'Unexpected "left" property.'
]
},
// test with arguments
{
source: 'body { top: 0 }',
args: "always",
warnings: 1
},
{
source: 'body { top: 0 }',
args: [ "always", { except: "top" } ]
},
// test autofixes
{
source: 'body { top: 0 }',
expect: 'body { inset-block-start: 0 }'
}
]
}
Use stylelint-tape in package.json
to test your plugin:
{
"scripts": {
"test:plugin": "stylelint-tape"
}
}
npm run test:plugin
Or, use it within Node.
const stylelintTape = require('stylelint-tape');
const plugin = require('path/to/plugin');
stylelintTape({ plugin: 'path/to/plugin.js' }, {
'your/rule': [
{
source: 'body { top: 0 }',
warnings: 1
}
]
}).then(
() => console.log('tests passed'),
error => console.error('tests failed', error)
);