# jest-preset-stylelint

> Jest preset for Stylelint plugins.

Latest version **9.2.0** (published 2026-05-15) · MIT license · 0 weekly downloads

## Install

```sh
npm install jest-preset-stylelint
pnpm add jest-preset-stylelint
yarn add jest-preset-stylelint
bun add jest-preset-stylelint
```

## Health

**Score 65/100 (B)** — status: active.

Positive: has types; no vulnerabilities; has provenance; high maintenance score; high quality score.

Warnings: low downloads; no esm support.

## Facts

| | |
|---|---|
| Version | 9.2.0 |
| Published | 2026-05-15 |
| First published | 2018-03-25 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Node | >=20.19.0 |
| Dependencies | 0 |
| Unpacked size | 21.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 14 |
| Author | stylelint |
| Maintainers | jeddy3, ybiquitous, romainmenke, ntwb |
| Keywords | stylelint, jest, jest-preset, preset |

## Links

- npm: https://www.npmjs.com/package/jest-preset-stylelint
- Repository: https://github.com/stylelint/jest-preset-stylelint
- Homepage: https://github.com/stylelint/jest-preset-stylelint#readme
- Issues: https://github.com/stylelint/jest-preset-stylelint/issues
- Funding: https://opencollective.com/stylelint
- npm.io page: https://npm.io/package/jest-preset-stylelint

## Alternatives

- [eslint-plugin-sonarjs](https://npm.io/package/eslint-plugin-sonarjs.md) — 2.9M weekly downloads
- [eslint-config-expo](https://npm.io/package/eslint-config-expo.md) — 1.5M weekly downloads
- [@matter/protocol](https://npm.io/package/@matter/protocol.md) — 63.5K weekly downloads
- [@eventcatalog/linter](https://npm.io/package/@eventcatalog/linter.md) — 24.8K weekly downloads
- [@inrupt/eslint-config-base](https://npm.io/package/@inrupt/eslint-config-base.md) — 4.5K weekly downloads

## Recent versions

- 9.2.0 (latest) — 2026-05-15
- 9.1.0 — 2026-01-28
- 9.0.0 — 2026-01-15
- 8.0.0 — 2025-06-30
- 7.3.0 — 2025-03-31
- 7.2.0 — 2025-01-25
- 7.1.1 — 2025-01-01
- 7.1.0 — 2024-07-08
- 7.0.1 — 2024-06-21
- 7.0.0 — 2023-12-08
- 6.3.2 — 2023-10-29
- 6.3.1 — 2023-10-10
- 6.3.0 — 2023-10-05
- 6.2.0 — 2023-08-10
- 6.1.1 — 2023-07-26
- … 17 more at https://npm.io/package/jest-preset-stylelint/versions

## README

# jest-preset-stylelint

[![NPM version](https://img.shields.io/npm/v/jest-preset-stylelint.svg)](https://www.npmjs.org/package/jest-preset-stylelint) [![Build Status](https://github.com/stylelint/jest-preset-stylelint/workflows/CI/badge.svg)](https://github.com/stylelint/jest-preset-stylelint/actions)

[Jest](https://jestjs.io/) preset for [Stylelint](https://stylelint.io/) plugins.

## Installation

Install the preset alongside Jest and Stylelint:

```bash
npm install jest-preset-stylelint jest stylelint --save-dev
```

## Setup

Add the preset to your `jest.config.js` or `jest` field in `package.json`:

```json
{
  "preset": "jest-preset-stylelint"
}
```

If your plugin is ESM, you'll need to [configure Jest appropriately](https://jestjs.io/docs/ecmascript-modules).

### Adjust setup globally

Optionally, you can avoid specifying `plugins` in every schema by defining your own setup file to configure the `testRule`/`testRuleConfigs` functions.
This is useful if you have many tests. There are two additional steps to do this:

1. Create `jest.setup.js` in the root of your project. Provide `plugins` option to `getTestRule`/`getTestRuleConfigs`:

   ```js
   import { getTestRule, getTestRuleConfigs } from "jest-preset-stylelint";
   import myPlugin from "./my-plugin.js";

   const plugins = [myPlugin];

   global.testRule = getTestRule({ plugins });
   global.testRuleConfigs = getTestRuleConfigs({ plugins });
   ```

2. Add `jest.setup.js` to your `jest.config.js` or `jest` field in `package.json`:

   ```json
   {
     "preset": "jest-preset-stylelint",
     "setupFiles": ["<rootDir>/jest.setup.js"]
   }
   ```

### Prevent segmentation fault

If you get a segmentation fault while running the preset on Node.js 18, you can use [jest-light-runner](https://www.npmjs.com/package/jest-light-runner):

```json
{
  "preset": "jest-preset-stylelint",
  "runner": "jest-light-runner"
}
```

## Usage

This preset exposes the following global functions as a helper.

See also the [type definitions](index.d.ts) for more details.

### `testRule`

The `testRule` function enables you to efficiently test your plugin using a schema.

For example, we can test a plugin that enforces and autofixes kebab-case class selectors:

```js
// my-plugin.test.js
import myPlugin from "./my-plugin.js";

const plugins = [myPlugin];
const {
  ruleName,
  rule: { messages }
} = myPlugin;

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
        }
      ]
    }
  ]
});
```

### `testRuleConfigs`

The `testRuleConfigs` function enables you to test invalid configs for a rule.

For example:

```js
testRuleConfigs({
  plugins,
  ruleName,

  accept: [
    {
      config: "valid"
    }
  ],

  reject: [
    {
      config: "invalid"
    },
    {
      config: [/invalid/],
      description: "regex is not allowed"
    }
  ]
});
```

## [Changelog](CHANGELOG.md)

## [License](LICENSE)

---
_Source: https://npm.io/package/jest-preset-stylelint · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
