Skip to content

Commit

Permalink
Show the pattern in "*-pattern" rule messages (#4975)
Browse files Browse the repository at this point in the history
  • Loading branch information
hudochenkov committed Oct 15, 2020
1 parent 8cbbaef commit 1ba8d6a
Show file tree
Hide file tree
Showing 12 changed files with 185 additions and 125 deletions.
16 changes: 8 additions & 8 deletions lib/rules/custom-media-pattern/__tests__/index.js
Expand Up @@ -27,25 +27,25 @@ testRule({
reject: [
{
code: '@custom-media --foa-bar (min-width: 0);',
message: messages.expected,
message: messages.expected(/foo-.+/),
line: 1,
column: 15,
},
{
code: '@cUsToM-mEdIa --foa-bar (min-width: 0);',
message: messages.expected,
message: messages.expected(/foo-.+/),
line: 1,
column: 15,
},
{
code: '@CUSTOM-MEDIA --foa-bar (min-width: 0);',
message: messages.expected,
message: messages.expected(/foo-.+/),
line: 1,
column: 15,
},
{
code: '@custom-media --foa (min-width: 0);',
message: messages.expected,
message: messages.expected(/foo-.+/),
line: 1,
column: 15,
},
Expand All @@ -71,13 +71,13 @@ testRule({
reject: [
{
code: '@custom-media --foa-bar (min-width: 0);',
message: messages.expected,
message: messages.expected('foo-.+'),
line: 1,
column: 15,
},
{
code: '@custom-media --foa (min-width: 0);',
message: messages.expected,
message: messages.expected('foo-.+'),
line: 1,
column: 15,
},
Expand All @@ -100,13 +100,13 @@ testRule({
reject: [
{
code: '@custom-media --ape-ageLess',
message: messages.expected,
message: messages.expected(/^[A-Z][a-z]+-[a-z][a-zA-Z]+$/),
line: 1,
column: 15,
},
{
code: '@custom-media --Ape-AgeLess',
message: messages.expected,
message: messages.expected(/^[A-Z][a-z]+-[a-z][a-zA-Z]+$/),
line: 1,
column: 15,
},
Expand Down
4 changes: 2 additions & 2 deletions lib/rules/custom-media-pattern/index.js
Expand Up @@ -11,7 +11,7 @@ const validateOptions = require('../../utils/validateOptions');
const ruleName = 'custom-media-pattern';

const messages = ruleMessages(ruleName, {
expected: 'Expected custom media query name to match specified pattern',
expected: (pattern) => `Expected custom media query name to match pattern "${pattern}"`,
});

function rule(pattern) {
Expand Down Expand Up @@ -39,7 +39,7 @@ function rule(pattern) {
}

report({
message: messages.expected,
message: messages.expected(pattern),
node: atRule,
index: atRuleParamIndex(atRule),
result,
Expand Down
14 changes: 7 additions & 7 deletions lib/rules/custom-property-pattern/__tests__/index.js
Expand Up @@ -18,11 +18,11 @@ testRule({
reject: [
{
code: ':root { --boo-bar: 0; }',
message: messages.expected,
message: messages.expected(/foo-.+/),
},
{
code: ':root { --foo-: 0; }',
message: messages.expected,
message: messages.expected(/foo-.+/),
},
],
});
Expand All @@ -43,11 +43,11 @@ testRule({
reject: [
{
code: ':root { --boo-bar: 0; }',
message: messages.expected,
message: messages.expected('foo-.+'),
},
{
code: ':root { --foo-: 0; }',
message: messages.expected,
message: messages.expected('foo-.+'),
},
],
});
Expand All @@ -68,15 +68,15 @@ testRule({
reject: [
{
code: ':root { --boo-Foo-bar: 0; }',
message: messages.expected,
message: messages.expected(/^[A-Z][a-z]+-[a-z][a-zA-Z]+$/),
},
{
code: ':root { --foo-bar: 0; }',
message: messages.expected,
message: messages.expected(/^[A-Z][a-z]+-[a-z][a-zA-Z]+$/),
},
{
code: ':root { --Foo-Bar: 0; }',
message: messages.expected,
message: messages.expected(/^[A-Z][a-z]+-[a-z][a-zA-Z]+$/),
},
],
});
4 changes: 2 additions & 2 deletions lib/rules/custom-property-pattern/index.js
Expand Up @@ -11,7 +11,7 @@ const validateOptions = require('../../utils/validateOptions');
const ruleName = 'custom-property-pattern';

const messages = ruleMessages(ruleName, {
expected: 'Expected custom property name to match specified pattern',
expected: (pattern) => `Expected custom property name to match pattern "${pattern}"`,
});

function rule(pattern) {
Expand Down Expand Up @@ -39,7 +39,7 @@ function rule(pattern) {
}

report({
message: messages.expected,
message: messages.expected(pattern),
node: decl,
result,
ruleName,
Expand Down
10 changes: 5 additions & 5 deletions lib/rules/keyframes-name-pattern/__tests__/index.js
Expand Up @@ -28,26 +28,26 @@ testRule({
reject: [
{
code: '@keyframes foo {}',
message: messages.expected('foo'),
message: messages.expected('foo', 'foo-.+'),
line: 1,
column: 12,
},
{
code: '@keyframes bar {}',
message: messages.expected('bar'),
message: messages.expected('bar', 'foo-.+'),
line: 1,
column: 12,
},
{
code: '@keyframes FOO-bar {}',
message: messages.expected('FOO-bar'),
message: messages.expected('FOO-bar', 'foo-.+'),
line: 1,
column: 12,
},
{
code: '@-webkit-keyframes bar {}',
description: 'Webkit prefix',
message: messages.expected('bar'),
message: messages.expected('bar', 'foo-.+'),
line: 1,
column: 20,
},
Expand All @@ -69,7 +69,7 @@ testRule({
{
code: '@keyframes foo-baz {}',
description: 'Accepts pattern in RegExp notation',
message: messages.expected('foo-baz'),
message: messages.expected('foo-baz', /^foo-bar$/),
line: 1,
column: 12,
},
Expand Down
5 changes: 3 additions & 2 deletions lib/rules/keyframes-name-pattern/index.js
Expand Up @@ -11,7 +11,8 @@ const validateOptions = require('../../utils/validateOptions');
const ruleName = 'keyframes-name-pattern';

const messages = ruleMessages(ruleName, {
expected: (keyframeName) => `Expected keyframe name "${keyframeName}" to match specified pattern`,
expected: (keyframeName, pattern) =>
`Expected keyframe name "${keyframeName}" to match pattern "${pattern}"`,
});

function rule(pattern) {
Expand All @@ -36,7 +37,7 @@ function rule(pattern) {

report({
index: atRuleParamIndex(keyframesNode),
message: messages.expected(value),
message: messages.expected(value, pattern),
node: keyframesNode,
ruleName,
result,
Expand Down
126 changes: 73 additions & 53 deletions lib/rules/selector-class-pattern/__tests__/index.js
@@ -1,10 +1,8 @@
'use strict';

const mergeTestDescriptions = require('../../../testUtils/mergeTestDescriptions');

const { messages, ruleName } = require('..');

const basicAZTests = {
const basicAZTestsAccept = {
accept: [
{
code: 'a {}',
Expand Down Expand Up @@ -45,22 +43,51 @@ const basicAZTests = {
message: 'Keyframes with decimal percentages',
},
],
};

testRule({
ruleName,
config: [/^[A-Z]+$/],

...basicAZTestsAccept,

reject: [
{
code: 'a .foo {}',
message: messages.expected('foo'),
message: messages.expected('foo', /^[A-Z]+$/),
line: 1,
column: 3,
},
{
code: '.ABABA > .bar {}',
message: messages.expected('bar'),
message: messages.expected('bar', /^[A-Z]+$/),
line: 1,
column: 10,
},
],
};
});

testRule({
ruleName,
config: ['^[A-Z]+$'],

...basicAZTestsAccept,

reject: [
{
code: 'a .foo {}',
message: messages.expected('foo', '^[A-Z]+$'),
line: 1,
column: 3,
},
{
code: '.ABABA > .bar {}',
message: messages.expected('bar', '^[A-Z]+$'),
line: 1,
column: 10,
},
],
});

const nestedAZTestsDefault = {
accept: [
Expand All @@ -73,7 +100,19 @@ const nestedAZTestsDefault = {
],
};

const nestedAZTests = {
testRule({
ruleName,
config: [/^[A-Z]+$/],
...nestedAZTestsDefault,
});

testRule({
ruleName,
config: ['^[A-Z]+$'],
...nestedAZTestsDefault,
});

const nestedAZTestsAccept = {
accept: [
{
code: '.AB { }',
Expand All @@ -91,58 +130,39 @@ const nestedAZTests = {
code: '.A, .B { &C {} &D, &E {} }',
},
],
};

testRule({
ruleName,
config: [/^[A-Z]+$/, { resolveNestedSelectors: true }],

...nestedAZTestsAccept,

reject: [
{
code: '.A { &__B { }}',
message: messages.expected('A__B'),
message: messages.expected('A__B', /^[A-Z]+$/),
line: 1,
column: 6,
},
],
};
});

testRule(
mergeTestDescriptions(basicAZTests, {
ruleName,
config: [/^[A-Z]+$/],
}),
);

testRule(
mergeTestDescriptions(basicAZTests, {
ruleName,
config: ['^[A-Z]+$'],
}),
);

testRule(
mergeTestDescriptions(nestedAZTestsDefault, {
ruleName,
config: [/^[A-Z]+$/],
}),
);

testRule(
mergeTestDescriptions(nestedAZTestsDefault, {
ruleName,
config: ['^[A-Z]+$'],
}),
);

testRule(
mergeTestDescriptions(nestedAZTests, {
ruleName,
config: [/^[A-Z]+$/, { resolveNestedSelectors: true }],
}),
);

testRule(
mergeTestDescriptions(nestedAZTests, {
ruleName,
config: ['^[A-Z]+$', { resolveNestedSelectors: true }],
}),
);
testRule({
ruleName,
config: ['^[A-Z]+$', { resolveNestedSelectors: true }],

...nestedAZTestsAccept,

reject: [
{
code: '.A { &__B { }}',
message: messages.expected('A__B', '^[A-Z]+$'),
line: 1,
column: 6,
},
],
});

testRule({
ruleName,
Expand All @@ -151,15 +171,15 @@ testRule({
reject: [
{
code: '.A { .B {} }',
message: messages.expected('A'),
message: messages.expected('A', /^B+$/),
},
{
code: '.A { & .B {} }',
message: messages.expected('A'),
message: messages.expected('A', /^B+$/),
},
{
code: '.A { &>.B {} }',
message: messages.expected('A'),
message: messages.expected('A', /^B+$/),
},
],
});
Expand Down

0 comments on commit 1ba8d6a

Please sign in to comment.