1.1.1 • Published 7 years ago
ava-postcss-tester v1.1.1
ava-postcss-tester

Test your PostCSS plugin with AVA and this handy tool.
// test.js
import test from 'ava';
import PostcssTester from 'ava-postcss-tester';
const tester = new PostcssTester({
postcss: require('postcss'),
plugin: require('.')
});
test('test name', async t => {
const input = `
.class {
size: 100px;
}
`;
const output = `
.class {
width: 100px;
height: 100px;
}
`;
await tester.test(input, output, t);
});Installation
$ npm install -D ava-postcss-testerUsage
Create a new tester by calling new PostcssTester with an options object:
postcss: The postcss module to use for processplugin: You PostCSS plugin to test (can be an array of plugins) tolerateWarnings;from: Optional, default:'', Thefromparameter passed topostcss.process, must be a file pathtolerateWarnings: Optional, default:false, Ignore PostCSS warningsexactComparaison: Optional, default:false, Compare theinputandoutputwithout any trimming or line breaks cleaning
import test from 'ava';
import PostcssTester from 'ava-postcss-tester';
const tester = new PostcssTester({
postcss: require('postcss'),
plugin: require('.'),
tolerateWarnings: true
});Then you can run the async function `tester.test(input, output, t, options):
input: A string containing your css inputoutput: A string containing your excpected output, it can be either a CSS string, anErroror a function receiving (error, warnings, result) letting you finish the test as you would like iterror: A string containing the Error messagewarnings: An array of PostCSS warnings, is null if there an error occuredresult: A string containing the PostCSS process result
t: The AVA testtobjectoptions: Optional, An object containing those additional parameters:pluginOptions: Options passed to your pluginpluginsBefore: An array of plugins to load before your pluginpluginsAfter: An array of plugins to load after your plugin
test('test name', async t => {
const input = `
.class {
size: 100px;
}
`;
const output = `
.class {
width: 100px;
height: 100px;
}
`;
await tester.test(input, output, t, {
pluginOptions: {
sizeShorthandActivated: true
},
pluginsAfter: [require('autoprefixer')]
});
});Related
- postcss - Transforming styles with JS plugins
- ava - Futuristic JavaScript test runner
- one-liner - Module used for comparing excepted and real CSS output
License
This project is licensed under the MIT license.