stylelint-tape
Version:
Test stylelint plugins
96 lines (80 loc) • 2.09 kB
Markdown
[![NPM Version][npm-img]][npm-url]
[![Build Status][cli-img]][cli-url]
[![Support Chat][git-img]][git-url]
[] lets you test [stylelint] plugins.
Add [stylelint-tape] to your project:
```bash
npm install stylelint-tape --save-dev
```
Add a `.tape.js` file with tests:
```js
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:
```json
{
"scripts": {
"test:plugin": "stylelint-tape"
}
}
```
```bash
npm run test:plugin
```
Or, use it within Node.
```js
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)
);
```
[]: https://img.shields.io/travis/csstools/stylelint-tape.svg
[]: https://travis-ci.org/csstools/stylelint-tape
[]: https://img.shields.io/badge/support-chat-blue.svg
[]: https://gitter.im/stylelint/stylelint
[]: https://img.shields.io/npm/v/stylelint-tape.svg
[]: https://www.npmjs.com/package/stylelint-tape
[]: https://github.com/stylelint/stylelint
[]: https://github.com/csstools/stylelint-tape