@jhae/stylelint-config-verifier

1.2.0 • Public • Published

Version License Tests Coverage

Stylelint Config Verifier

Does your Stylelint configuration meet your expectations? Easily test individual rules with Jest using code snippets and ensure that errors and warnings are being reported correctly.

Installation

Using npm:

npm install --save-dev @jhae/stylelint-config-verifier

Usage

With inline code

Example Stylelint configuration file:

rules:
  at-rule-disallowed-list:
    - debug
    - import

Verifying the at-rule-disallowed-list rule configuration:

import { ConfigVerifier } from '@jhae/stylelint-config-verifier';

new ConfigVerifier().verify(
  // Pass the name of the rule.
  'at-rule-disallowed-list',

  // Describe one or more test cases.
  {
    // Give the test case a name.
    name: 'Disallow @debug rule',

    // Place the code to be tested against the configuration file here.
    code: '@debug "";',

    // Define the expectation.
    expect: {
      // Whether Stylelint should report an error or not.
      errored: true,

      // The messages that Stylelint should report.
      messages: ['Unexpected at-rule "debug"'],

      // The severities that Stylelint should report for each message.
      severities: ['error'],
    },
  },
  {
    name: 'Disallow @import rule',
    code: `
      @import "test-1.css";
      @import "test-2.css";
    `,
    expect: {
      errored: true,
      messages: ['Unexpected at-rule "import"', 'Unexpected at-rule "import"'],
      severities: ['error', 'error'],
    },
  },
  {
    // The expectation can be omitted if Stylelint should not report errors.
    name: 'Allow @use rule',
    code: '@use "test.scss";',
  },
);

The verification result:

Rule 'at-rule-disallowed-list'
  ✓ Disallow @debug rule (1 ms)
  ✓ Disallow @import rule (1 ms)
  ✓ Allow @use rule (1 ms)

With a file

It is also possible to pass a file to the test case. This is useful for testing overrides, for example.

Example Stylelint configuration file:

rules:
  at-rule-disallowed-list:
    - import

overrides:
  - files:
      - '*.css'
      - '**/*.css'
    rules:
      at-rule-disallowed-list: null

The CSS file, for example at-rule-disallowed-list.css:

@import 'test.css';

Verifying the at-rule-disallowed-list rule configuration:

import { ConfigVerifier } from '@jhae/stylelint-config-verifier';

new ConfigVerifier().verify('at-rule-disallowed-list', {
  name: 'Allow @import rule in CSS files',

  // Pass the file instead of inline code.
  file: 'at-rule-disallowed-list.css',
});

Specifying the Stylelint configuration file

By default, the config verifier looks for a .stylelintrc.yaml configuration file. If a different location or file name is used, the path to it can be specified as a constructor argument.

import { ConfigVerifier } from '@jhae/stylelint-config-verifier';

new ConfigVerifier('path/to/stylelint.config.js').verify();

Importing into CommonJS

const { ConfigVerifier } = require('@jhae/stylelint-config-verifier');

new ConfigVerifier().verify();

Check out the Standard SCSS Stylelint Config tests for more examples.

Package Sidebar

Install

npm i @jhae/stylelint-config-verifier

Weekly Downloads

23

Version

1.2.0

License

MIT

Unpacked Size

17.6 kB

Total Files

12

Last publish

Collaborators

  • jhae-de