Skip to content

Commit

Permalink
Add autofix to font-weight-notation
Browse files Browse the repository at this point in the history
  • Loading branch information
ybiquitous committed Sep 15, 2022
1 parent bb10282 commit 04c4ac7
Show file tree
Hide file tree
Showing 5 changed files with 178 additions and 109 deletions.
1 change: 1 addition & 0 deletions lib/reference/keywords.js
Expand Up @@ -311,6 +311,7 @@ module.exports = {
fontFamilyKeywords,
fontShorthandKeywords,
fontSizeKeywords,
fontWeightAbsoluteKeywords,
fontWeightKeywords,
fontWeightRelativeKeywords,
gridAreaKeywords,
Expand Down
59 changes: 54 additions & 5 deletions lib/rules/font-weight-notation/__tests__/index.js
Expand Up @@ -5,6 +5,7 @@ const { messages, ruleName } = require('..');
testRule({
ruleName,
config: ['numeric'],
fix: true,

accept: [
{
Expand Down Expand Up @@ -83,6 +84,10 @@ testRule({
code: 'a { font-weight: INITIAL; }',
description: 'ignore initial value',
},
{
code: 'a { font-weight: /* bold */ 400; }',
description: 'ignore comment',
},
{
code: '@font-face { font-weight: 400; }',
},
Expand Down Expand Up @@ -115,6 +120,7 @@ testRule({
reject: [
{
code: 'a { font-weight: normal; }',
fixed: 'a { font-weight: 400; }',
message: messages.expected('numeric'),
line: 1,
column: 18,
Expand All @@ -123,6 +129,7 @@ testRule({
},
{
code: 'a { fOnT-wEiGhT: normal; }',
fixed: 'a { fOnT-wEiGhT: 400; }',
message: messages.expected('numeric'),
line: 1,
column: 18,
Expand All @@ -131,6 +138,7 @@ testRule({
},
{
code: 'a { FONT-WEIGHT: normal; }',
fixed: 'a { FONT-WEIGHT: 400; }',
message: messages.expected('numeric'),
line: 1,
column: 18,
Expand All @@ -139,6 +147,7 @@ testRule({
},
{
code: 'a { font-weight: nOrMaL; }',
fixed: 'a { font-weight: 400; }',
message: messages.expected('numeric'),
line: 1,
column: 18,
Expand All @@ -147,14 +156,25 @@ testRule({
},
{
code: 'a { font-weight: NORMAL; }',
fixed: 'a { font-weight: 400; }',
message: messages.expected('numeric'),
line: 1,
column: 18,
endLine: 1,
endColumn: 24,
},
{
code: 'a { font-weight: /* bold */ normal; }',
fixed: 'a { font-weight: /* bold */ 400; }',
message: messages.expected('numeric'),
line: 1,
column: 29,
endLine: 1,
endColumn: 35,
},
{
code: 'a { font: italic small-caps bolder 16px/3 cursive; }',
unfixable: true,
message: messages.expected('numeric'),
line: 1,
column: 29,
Expand All @@ -163,6 +183,7 @@ testRule({
},
{
code: 'a { font: normal 16px/3 cursive; }',
fixed: 'a { font: 400 16px/3 cursive; }',
description: 'one normal and no numbered weight',
message: messages.expected('numeric'),
line: 1,
Expand All @@ -172,6 +193,7 @@ testRule({
},
{
code: 'a { font: normal normal 16px/3 cursive; }',
fixed: 'a { font: 400 normal 16px/3 cursive; }',
description: 'two normals and no numbered weight',
message: messages.expected('numeric'),
line: 1,
Expand All @@ -181,6 +203,7 @@ testRule({
},
{
code: 'a { font: normal normal normal 16px/3 cursive; }',
fixed: 'a { font: 400 normal normal 16px/3 cursive; }',
description: 'three normals and no numbered weight',
message: messages.expected('numeric'),
line: 1,
Expand All @@ -190,14 +213,27 @@ testRule({
},
{
code: '@font-face { font-weight: normal bold; }',
message: messages.expected('numeric'),
line: 1,
column: 27,
endLine: 1,
endColumn: 33,
fixed: '@font-face { font-weight: 400 700; }',
warnings: [
{
message: messages.expected('numeric'),
line: 1,
column: 27,
endLine: 1,
endColumn: 33,
},
{
message: messages.expected('numeric'),
line: 1,
column: 34,
endLine: 1,
endColumn: 38,
},
],
},
{
code: '@font-face { font-weight: 400 bold; }',
fixed: '@font-face { font-weight: 400 700; }',
message: messages.expected('numeric'),
line: 1,
column: 31,
Expand All @@ -206,6 +242,7 @@ testRule({
},
{
code: '@font-face { font-weight: normal 700; }',
fixed: '@font-face { font-weight: 400 700; }',
message: messages.expected('numeric'),
line: 1,
column: 27,
Expand All @@ -214,6 +251,7 @@ testRule({
},
{
code: '@font-face { font-weight: /* 400 */ normal 700; }',
fixed: '@font-face { font-weight: /* 400 */ 400 700; }',
message: messages.expected('numeric'),
line: 1,
column: 37,
Expand All @@ -222,6 +260,7 @@ testRule({
},
{
code: '@font-face { font-weight: normal /* 400 */700; }',
fixed: '@font-face { font-weight: 400 /* 400 */700; }',
message: messages.expected('numeric'),
line: 1,
column: 27,
Expand All @@ -230,6 +269,7 @@ testRule({
},
{
code: '@font-face { font-weight: normal/* 400 */ 700; }',
fixed: '@font-face { font-weight: 400/* 400 */ 700; }',
message: messages.expected('numeric'),
line: 1,
column: 27,
Expand All @@ -242,6 +282,7 @@ testRule({
testRule({
ruleName,
config: ['numeric', { ignore: ['relative'] }],
fix: true,

accept: [
{
Expand All @@ -267,6 +308,7 @@ testRule({
reject: [
{
code: 'a { font-weight: normal; }',
fixed: 'a { font-weight: 400; }',
message: messages.expected('numeric'),
line: 1,
column: 18,
Expand All @@ -279,6 +321,7 @@ testRule({
testRule({
ruleName,
config: ['named-where-possible'],
fix: true,

accept: [
{
Expand Down Expand Up @@ -357,6 +400,7 @@ testRule({
reject: [
{
code: 'a { font-weight: 400; }',
fixed: 'a { font-weight: normal; }',
message: messages.expected('named'),
line: 1,
column: 18,
Expand All @@ -365,6 +409,7 @@ testRule({
},
{
code: 'a { font-weight: boldd; }',
unfixable: true,
description: 'invalid font-weight value',
message: messages.invalidNamed('boldd'),
line: 1,
Expand All @@ -374,6 +419,7 @@ testRule({
},
{
code: 'a { font: italic small-caps 700 16px/3 cursive; }',
fixed: 'a { font: italic small-caps bold 16px/3 cursive; }',
message: messages.expected('named'),
line: 1,
column: 29,
Expand All @@ -382,6 +428,7 @@ testRule({
},
{
code: 'a { font: normal 400 normal 16px serif; }',
fixed: 'a { font: normal normal normal 16px serif; }',
description: 'two normals and a numbered weight',
message: messages.expected('named'),
line: 1,
Expand All @@ -391,6 +438,7 @@ testRule({
},
{
code: 'a { font: 400 normal 16px serif; }',
fixed: 'a { font: normal normal 16px serif; }',
description: 'one normal and a numbered weight',
message: messages.expected('named'),
line: 1,
Expand All @@ -400,6 +448,7 @@ testRule({
},
{
code: 'a { font: 400 16px serif; }',
fixed: 'a { font: normal 16px serif; }',
description: 'no normals and a numbered weight',
message: messages.expected('named'),
line: 1,
Expand Down

0 comments on commit 04c4ac7

Please sign in to comment.