Skip to content

Commit

Permalink
Add @import tests for max-line-length rule (stylelint#2221)
Browse files Browse the repository at this point in the history
  • Loading branch information
ntwb authored and sergesemashko committed Mar 3, 2017
1 parent b5aa26d commit c68fd82
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 42 deletions.
47 changes: 43 additions & 4 deletions lib/rules/max-line-length/__tests__/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@ testRule(rule, {
code: "a { margin: 0 2px; }\r\n",
}, {
code: "a { margin: 0 2px; }\r\na { margin: 4px 0; }\n",
}, {
code: "@import url(\"somethingsomethingsomethingsomething.css\") print;",
}, {
code: "@import 'somethingsomethingsomethingsomething.css';",
}, {
code: "@import 'svg-something<id=\"horse\">' projection;",
} ],

reject: [ {
Expand Down Expand Up @@ -71,23 +77,56 @@ testRule(rule, {
message: messages.expected(20),
line: 1,
column: 21,
}, {
code: "@import url(\"somethingsomethingsomethingsomething.css\") projection, tv;",
message: messages.expected(20),
line: 1,
column: 29,
}, {
code: "@import 'somethingsomethingsomethingsomething.css' projection, tv;",
message: messages.expected(20),
line: 1,
column: 24,
}, {
code: "@import 'svg-something<id=\"horse\">' screens, tv;",
message: messages.expected(20),
line: 1,
column: 21,
} ],
})

testRule(rule, {
ruleName,
config: [30],

accept: [{
accept: [ {
code: "a { color: 0;\n top: 0; left: 0; right: 0; \n bottom: 0; }",
}],
}, {
code: "@import url(\"somethingsomethingsomethingsomething.css\") print;",
}, {
code: "@import url(\"somethingsomethingsomethingsomething.css\") projection, tv;",
}, {
code: "@import url(\"chrome:\/\/somethingsomethingsomethingsomething\/\");",
}, {
code: "@import \"somethingsomethingsomethingsomething.css\" screen, projection;",
} ],

reject: [{
reject: [ {
code: "a { color: 0;\n top: 0; left: 0; right: 0; background: pink; \n bottom: 0; }",
message: messages.expected(30),
line: 2,
column: 47,
}],
}, {
code: "@import url(\"somethingsomethingsomethingsomething.css\") projection, screen;",
message: messages.expected(30),
line: 1,
column: 33,
}, {
code: "@import \"somethingsomethingsomethingsomething.css\" screen, projection, tv;",
message: messages.expected(30),
line: 1,
column: 32,
} ],
})

testRule(rule, {
Expand Down
6 changes: 5 additions & 1 deletion lib/rules/max-line-length/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,11 @@ const rule = function (maxLength, options) {

// Collapse all urls into something nice and short,
// so they do not throw the game
const rootString = root.toString().replace(/url\(.*\)/ig, "url()")
const rootString = root.toString()
// Replace `url(something)` with `url()`
.replace(/url\(.*\)/ig, "url()")
// Replace `@import "something"` with `@import ""`
.replace(/\@import\s+['"].*['"]/ig, "@import ")

const ignoreNonComments = optionsMatches(options, "ignore", "non-comments")
const ignoreComments = optionsMatches(options, "ignore", "comments")
Expand Down
74 changes: 37 additions & 37 deletions system-tests/005/__snapshots__/005.test.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -11758,169 +11758,169 @@ Array [
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 5,
"line": 146,
"column": 25,
"line": 145,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 3,
"line": 150,
"column": 2,
"line": 149,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 10,
"column": 3,
"line": 152,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 35,
"column": 28,
"line": 153,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 16,
"column": 9,
"line": 156,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 10,
"column": 3,
"line": 160,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 6,
"line": 162,
"column": 3,
"line": 161,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 19,
"column": 12,
"line": 173,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 3,
"line": 175,
"column": 15,
"line": 174,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 10,
"column": 3,
"line": 177,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 5,
"line": 179,
"column": 7,
"line": 178,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 5,
"line": 183,
"column": 7,
"line": 182,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 6,
"line": 195,
"column": 3,
"line": 194,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 10,
"column": 3,
"line": 202,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 9,
"column": 2,
"line": 207,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 8,
"column": 1,
"line": 211,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 1,
"line": 220,
"column": 21,
"line": 218,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 2,
"line": 224,
"column": 15,
"line": 223,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 23,
"column": 16,
"line": 225,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 7,
"line": 232,
"column": 4,
"line": 231,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 14,
"column": 7,
"line": 235,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 2,
"line": 238,
"column": 14,
"line": 237,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 6,
"line": 241,
"column": 1,
"line": 240,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
},
Object {
"column": 1,
"line": 244,
"column": 22,
"line": 243,
"rule": "max-line-length",
"severity": "error",
"text": "Expected line length to be no more than 20 characters (max-line-length)",
Expand Down

0 comments on commit c68fd82

Please sign in to comment.