Skip to content
This repository has been archived by the owner on Mar 6, 2021. It is now read-only.

An easy way to test stylelint rules.

License

Notifications You must be signed in to change notification settings

stylelint/stylelint-rule-tester

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

stylelint-rule-tester

DEPRECATED: Use stylelint-test-rule-tape instead!

An easy way to test stylelint rules.

For documentation, read the comments (or if you would like to help write docs, please PR!).

For examples, check out the rule tests in stylelint.

Here's a quick example, though. Given the following test:

var ruleTester = require('stylelint-rule-tester');
var noEmptyBlocksRule = require('path/to/noEmptyBlocksRule');

var testRule = ruleTester(noEmptyBlocksRule, 'my-no-empty-blocks-rule');
var rejectionMessage = 'Please, no empty blocks!';

testRule('always', function(tr) {
  tr.ok('', 'empty');
  tr.ok('@import \'foo.css\';', 'blockless at-rule');

  tr.ok('a { color: pink; }', 'rule with a declaration');
  tr.ok('@media print { a { color: pink; } }', 'at-rule with a rule with a declaration');

  tr.notOk('a {}', rejectionMessage, 'empty rule block');
  tr.notOk('a { }', rejectionMessage, 'rule block with a single space');
  tr.notOk('a {\n}', rejectionMessage, 'rule block with a newline');
  tr.notOk('@media print {}', rejectionMessage, 'empty at-rule block');
  tr.notOk('@media print { a {} }', {
    message: rejectionMessage,
    line: 6,
    column: 3,
  }, 'at-rule block with an empty rule block');
});

The following TAP output will be logged:

TAP version 13
#
css: ""
rule: my-no-empty-blocks-rule
options: "always"
ok 1 empty should pass
#
css: "@import 'foo.css';"
rule: my-no-empty-blocks-rule
options: "always"
ok 2 blockless at-rule should pass
#
css: "a { color: pink; }"
rule: my-no-empty-blocks-rule
options: "always"
ok 3 rule with a declaration should pass
#
css: "@media print { a { color: pink; } }"
rule: my-no-empty-blocks-rule
options: "always"
ok 4 at-rule with a rule with a declaration should pass
#
css: "a {}"
rule: my-no-empty-blocks-rule
options: "always"
ok 5 empty rule block should warn
ok 6 empty rule block warning message should be "Please, no empty blocks!"
#
css: "a { }"
rule: my-no-empty-blocks-rule
options: "always"
ok 7 rule block with a single space should warn
ok 8 rule block with a single space warning message should be "Please, no empty blocks!"
#
css: "a {\n}"
rule: my-no-empty-blocks-rule
options: "always"
ok 9 rule block with a newline should warn
ok 10 rule block with a newline warning message should be "Please, no empty blocks!"
#
css: "@media print {}"
rule: my-no-empty-blocks-rule
options: "always"
ok 11 empty at-rule block should warn
ok 12 empty at-rule block warning message should be "Please, no empty blocks!"
#
css: "@media print { a {} }"
rule: my-no-empty-blocks-rule
options: "always"
ok 13 at-rule block with an empty rule block should warn
ok 14 at-rule block with an empty rule block warning message should be "Please, no empty blocks!"
ok 15 at-rule block with an empty rule block warning should be at line 6
ok 16 at-rule block with an empty rule block warning should be at column 3

1..16
# tests 16
# pass  16

# ok

About

An easy way to test stylelint rules.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published