Skip to content

Commit

Permalink
Remove deprecated rules, but test for future ones
Browse files Browse the repository at this point in the history
Upgrading `stylelint` to v15 deprecated a bunch of rules, which are
intended to be handled by Prettier instead.

This removes the style rules deprecated in that upgrade, alongside
others which have changed.

To try and catch when future rules are deprecated in upgrades, we add a
test to see if the rule is listed as deprecated. Unfortunately, not all
plugins follow the same method signature, so we need to check if
`stylelint` knows about the rules before asserting on them.

https://github.com/stylelint/stylelint/blob/main/docs/migration-guide/to-15.md
https://github.com/stylelint/stylelint-config-standard/blob/main/__tests__/index.test.mjs
  • Loading branch information
nickcharlton committed Feb 1, 2024
1 parent abd1f45 commit 5e48f43
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 57 deletions.
34 changes: 14 additions & 20 deletions __tests__/index.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,19 @@ describe('rules', () => {
it('is not empty', () => {
assert.ok(ruleNames.length > 0);
});
})

ruleNames.forEach((ruleName) => {
it(`${ruleName}`, async () => {
const rule = await stylelint.rules[ruleName];

// rules like `stylelint-order` don't have the same method signature and
// so we can't tell if they're deprectated or not
if (typeof rule !== 'undefined') {
assert.ok(!rule.meta.deprecated, `the ${ruleName} rule is deprecated`);
}
});
});
});

describe('with the valid example', () => {
const validScss = fs.readFileSync('./__tests__/valid.scss', 'utf-8');
Expand Down Expand Up @@ -50,7 +62,7 @@ describe('with the invalid example', () => {
});

it('has the correct amount of warnings', () => {
assert.equal(result.results[0].warnings.length, 46);
assert.equal(result.results[0].warnings.length, 28);
});

it('flags the correct rules', () => {
Expand All @@ -67,42 +79,24 @@ describe('with the invalid example', () => {
'scss/map-keys-quotes',
'scss/no-duplicate-dollar-variables',
'scss/dollar-variable-empty-line-before',
'block-closing-brace-empty-line-before',
'block-no-empty',
'block-opening-brace-space-before',
'color-hex-case',
'color-hex-case',
'color-hex-length',
'color-named',
'color-named',
'comment-whitespace-inside',
'comment-whitespace-inside',
'declaration-block-no-redundant-longhand-properties',
'declaration-block-semicolon-newline-before',
'declaration-block-semicolon-space-before',
'declaration-block-trailing-semicolon',
'declaration-block-trailing-semicolon',
'declaration-empty-line-before',
'declaration-empty-line-before',
'declaration-no-important',
'declaration-property-unit-allowed-list',
'declaration-property-value-disallowed-list',
'max-empty-lines',
'max-empty-lines',
'max-nesting-depth',
'no-empty-first-line',
'property-no-unknown',
'property-no-vendor-prefix',
'selector-list-comma-newline-after',
'selector-list-comma-space-before',
'selector-max-id',
'selector-max-id',
'selector-pseudo-element-case',
'selector-pseudo-element-colon-notation',
'unit-case',
'indentation',
'indentation',
'indentation',
],
);
});
Expand Down
38 changes: 1 addition & 37 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,52 +6,23 @@ module.exports = {
],
"rules": {
"at-rule-no-unknown": null,
"block-closing-brace-empty-line-before": "never",
"block-closing-brace-newline-before": "always-multi-line",
"block-opening-brace-newline-after": "always-multi-line",
"block-opening-brace-space-before": "always",
"color-hex-case": "lower",
"color-hex-length": "long",
"color-named": "never",
"comment-whitespace-inside": "always",
"declaration-bang-space-after": "never",
"declaration-bang-space-before": "always",
"declaration-block-no-redundant-longhand-properties": true,
"declaration-block-semicolon-newline-after": "always",
"declaration-block-semicolon-newline-before": "never-multi-line",
"declaration-block-semicolon-space-before": "never",
"declaration-block-trailing-semicolon": "always",
"declaration-colon-space-after": "always-single-line",
"declaration-colon-space-before": "never",
"declaration-no-important": true,
"declaration-property-unit-allowed-list": {
"line-height": []
},
"declaration-property-value-disallowed-list": {
"/^transition/": ["/all/"]
},
"function-comma-space-after": "always-single-line",
"function-comma-space-before": "never",
"function-parentheses-space-inside": "never-single-line",
"function-url-quotes": "always",
"indentation": 2,
"length-zero-no-unit": true,
"max-empty-lines": 1,
"max-line-length": 80,
"max-nesting-depth": 3,
"media-query-list-comma-newline-after": "always-multi-line",
"media-query-list-comma-newline-before": "never-multi-line",
"media-query-list-comma-space-after": "always",
"media-query-list-comma-space-before": "never",
"no-empty-first-line": true,
"no-empty-source": true,
"no-eol-whitespace": true,
"no-missing-end-of-source-newline": true,
"number-leading-zero": "always",
"number-no-trailing-zeros": true,
"order/properties-alphabetical-order": true,
"plugin/declaration-block-no-ignored-properties": true,
"property-case": "lower",
"property-no-unknown": [
true,
{
Expand All @@ -75,7 +46,7 @@ module.exports = {
"scss/at-else-if-parentheses-space-before": "never",
"scss/at-extend-no-missing-placeholder": true,
"scss/at-function-parentheses-space-before": "never",
"scss/at-import-no-partial-leading-underscore": true,
"scss/load-no-partial-leading-underscore": true,
"scss/at-import-partial-extension-blacklist": ["scss"],
"scss/at-mixin-parentheses-space-before": "never",
"scss/at-rule-no-unknown": true,
Expand All @@ -86,19 +57,12 @@ module.exports = {
"scss/operator-no-unspaced": true,
"scss/selector-no-redundant-nesting-selector": true,
"scss/selector-no-union-class-name": true,
"selector-list-comma-newline-after": "always",
"selector-list-comma-newline-before": "never-multi-line",
"selector-list-comma-space-before": "never",
"selector-max-id": 0,
"selector-no-qualifying-type": true,
"selector-no-vendor-prefix": true,
"selector-pseudo-class-case": "lower",
"selector-pseudo-element-case": "lower",
"selector-pseudo-element-colon-notation": "double",
"selector-type-case": "lower",
"shorthand-property-no-redundant-values": true,
"string-quotes": "double",
"unit-case": "lower",
"value-keyword-case": "lower",
"value-no-vendor-prefix": true
}
Expand Down

0 comments on commit 5e48f43

Please sign in to comment.