Skip to content
Open
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,15 @@ withFixture('basic', (c) => {
testFixture('css-conflict/vue-style-lang-sass')
testFixture('invalid-screen/simple')
testFixture('invalid-theme/simple')
testFixture('invalid-class/simple')
testFixture('invalid-class/whitespace-negative')
testFixture('invalid-class/variants')
testFixture('invalid-class/jsx-concat-positive')
testFixture('invalid-class/jsx-template-literal')
testFixture('invalid-class/css')
testFixture('invalid-class/css-multi-prop')
testFixture('invalid-class/css-multi-rule')
testFixture('invalid-class/vue-style-lang-sass')
})

withFixture('v4/basic', (c) => {
Expand Down Expand Up @@ -88,6 +97,15 @@ withFixture('v4/basic', (c) => {
// testFixture('css-conflict/css-multi-rule')
// testFixture('css-conflict/css-multi-prop')
// testFixture('invalid-screen/simple')
testFixture('invalid-class/simple')
testFixture('invalid-class/whitespace-negative')
testFixture('invalid-class/variants')
testFixture('invalid-class/jsx-concat-positive')
testFixture('invalid-class/jsx-template-literal')
testFixture('invalid-class/css')
testFixture('invalid-class/css-multi-prop')
testFixture('invalid-class/css-multi-rule')
testFixture('invalid-class/vue-style-lang-sass')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd write all of these using testInline now. The .json file based tests will eventually disappear when I have the time to refactor everything (I'm slowly working on a larger change right now that'll also end up moving most relevant tests to the language service instead anyway)


testInline('simple typos in theme keys (in key)', {
code: '.test { color: theme(--color-red-901) }',
Expand Down Expand Up @@ -324,6 +342,17 @@ withFixture('v4/basic', (c) => {
},
],
},
{
code: 'invalidClass',
source: 'tailwindcss',
message: "Unknown utility class 'foo'.",
className: {
className: 'foo',
classList: {
classList: 'foo max-w-4xl max-w-6xl hover:underline',
},
},
},
],
})

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
{
"code": ".test { @apply px-4; color: red; @apply nonexistent }",
"language": "css",
"expected": [
{
"code": "invalidClass",
"source": "tailwindcss",
"className": {
"className": "nonexistent",
"classList": {
"classList": "nonexistent",
"important": false,
"range": {
"start": {
"line": 0,
"character": 40
},
"end": {
"line": 0,
"character": 51
}
}
},
"range": {
"start": {
"line": 0,
"character": 40
},
"end": {
"line": 0,
"character": 51
}
},
"relativeRange": {
"start": {
"line": 0,
"character": 0
},
"end": {
"line": 0,
"character": 11
}
}
},
"range": {
"start": {
"line": 0,
"character": 40
},
"end": {
"line": 0,
"character": 51
}
},
"severity": 3,
"message": "Unknown utility class 'nonexistent'."
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
{
"code": ".test { @apply px-4 }\n.test { @apply nonexistent }",
"language": "css",
"expected": [
{
"code": "invalidClass",
"source": "tailwindcss",
"className": {
"className": "nonexistent",
"classList": {
"classList": "nonexistent",
"important": false,
"range": {
"start": {
"line": 1,
"character": 15
},
"end": {
"line": 1,
"character": 26
}
}
},
"range": {
"start": {
"line": 1,
"character": 15
},
"end": {
"line": 1,
"character": 26
}
},
"relativeRange": {
"start": {
"line": 0,
"character": 0
},
"end": {
"line": 0,
"character": 11
}
}
},
"range": {
"start": {
"line": 1,
"character": 15
},
"end": {
"line": 1,
"character": 26
}
},
"severity": 3,
"message": "Unknown utility class 'nonexistent'."
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
{
"code": ".test { @apply nonexistent; }",
"language": "css",
"expected": [
{
"code": "invalidClass",
"source": "tailwindcss",
"className": {
"className": "nonexistent",
"classList": {
"classList": "nonexistent",
"important": false,
"range": {
"start": {
"line": 0,
"character": 15
},
"end": {
"line": 0,
"character": 26
}
}
},
"range": {
"start": {
"line": 0,
"character": 15
},
"end": {
"line": 0,
"character": 26
}
},
"relativeRange": {
"start": {
"line": 0,
"character": 0
},
"end": {
"line": 0,
"character": 11
}
}
},
"range": {
"start": {
"line": 0,
"character": 15
},
"end": {
"line": 0,
"character": 26
}
},
"severity": 3,
"message": "Unknown utility class 'nonexistent'."
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
{
"code": "<div className={`nonexistent ${'px-4'}`}>",
"language": "javascriptreact",
"expected": [
{
"className": {
"classList": {
"classList": "nonexistent $",
"range": {
"end": {
"character": 30,
"line": 0
},
"start": {
"character": 17,
"line": 0
}
}
},
"className": "nonexistent",
"range": {
"end": {
"character": 28,
"line": 0
},
"start": {
"character": 17,
"line": 0
}
},
"relativeRange": {
"end": {
"character": 11,
"line": 0
},
"start": {
"character": 0,
"line": 0
}
}
},
"code": "invalidClass",
"message": "Unknown utility class 'nonexistent'.",
"range": {
"end": {
"character": 28,
"line": 0
},
"start": {
"character": 17,
"line": 0
}
},
"severity": 3,
"source": "tailwindcss"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
{
"code": "<div className={`nonexistent ${'px-4'}`}>",
"language": "javascriptreact",
"expected": [
{
"className": {
"classList": {
"classList": "nonexistent $",
"range": {
"end": {
"character": 30,
"line": 0
},
"start": {
"character": 17,
"line": 0
}
}
},
"className": "nonexistent",
"range": {
"end": {
"character": 28,
"line": 0
},
"start": {
"character": 17,
"line": 0
}
},
"relativeRange": {
"end": {
"character": 11,
"line": 0
},
"start": {
"character": 0,
"line": 0
}
}
},
"code": "invalidClass",
"message": "Unknown utility class 'nonexistent'.",
"range": {
"end": {
"character": 28,
"line": 0
},
"start": {
"character": 17,
"line": 0
}
},
"severity": 3,
"source": "tailwindcss"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"code": "<div class=\"px-4 nonexistent-class\"></div>",
"expected": [
{
"code": "invalidClass",
"source": "tailwindcss",
"className": {
"className": "nonexistent-class",
"classList": {
"classList": "px-4 nonexistent-class",
"range": {
"start": { "line": 0, "character": 12 },
"end": { "line": 0, "character": 34 }
}
},
"relativeRange": {
"start": { "line": 0, "character": 5 },
"end": { "line": 0, "character": 22 }
},
"range": { "start": { "line": 0, "character": 17 }, "end": { "line": 0, "character": 34 } }
},
"range": { "start": { "line": 0, "character": 17 }, "end": { "line": 0, "character": 34 } },
"severity": 3,
"message": "Unknown utility class 'nonexistent-class'."
}
]
}
Loading