README
jest-preset-stylelint
Jest preset for Stylelint plugins.
Installation
Install the preset alongside Jest and Stylelint:
npm install jest-preset-stylelint jest stylelint --save-dev
Setup
Add the preset to your jest.config.js
or jest
field in package.json
:
{
"preset": "jest-preset-stylelint"
}
Optionally, you can avoid specifying plugins
in every schema by defining your own setup file to configure the testRule
function. This is useful if you have many tests. There are two additional steps to do this:
Create
jest.setup.js
in the root of your project. Provideplugins
option togetTestRule()
:const { getTestRule } = require("jest-preset-stylelint"); global.testRule = getTestRule({ plugins: ["./"] });
Add
jest.setup.js
to yourjest.config.js
orjest
field inpackage.json
:{ "preset": "jest-preset-stylelint", "setupFiles": ["jest.setup.js"] }
Usage
The preset exposes a global testRule
function that you can use to efficiently test your plugin using a schema.
For example, we can test a plugin that enforces and autofixes kebab-case class selectors:
// my-plugin.test.js
const { messages, ruleName } = require(".");
testRule({
plugins: ["."],
ruleName,
config: [true, { type: "kebab" }],
fix: true,
accept: [
{
code: ".class {}",
description: "simple class selector"
},
{
code: ".my-class {}",
description: "kebab class selector"
}
],
reject: [
{
code: ".myClass {}",
fixed: ".my-class {}",
description: "camel case class selector",
message: messages.expected(),
line: 1,
column: 1,
endLine: 1,
endColumn: 8
},
{
code: ".MyClass,\n.MyOtherClass {}",
fixed: ".my-class,\n.my-other-class {}",
description: "two pascal class selectors in a selector list",
warnings: [
{
message: messages.expected(),
line: 1,
column: 1,
endLine: 1,
endColumn: 8
},
{
message: messages.expected(),
line: 2,
column: 1,
endLine: 2,
endColumn: 13
}
]
}
]
});
Schema properties
See the type definitions.