Skip to content

Commit 11ae50f

Browse files
authored
fix: detect prefixed @keyframes in no-duplicate-keyframe-selectors (eslint#251)
fix: detect prefixed @Keyframes in no-duplicate-keyframe-selectors
1 parent a009bb7 commit 11ae50f

File tree

2 files changed

+59
-2
lines changed

2 files changed

+59
-2
lines changed

src/rules/no-duplicate-keyframe-selectors.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,12 @@ export default {
3939
const seen = new Map();
4040

4141
return {
42-
"Atrule[name=/^keyframes$/i]"() {
42+
"Atrule[name=/^(-(o|moz|webkit)-)?keyframes$/i]"() {
4343
insideKeyframes = true;
4444
seen.clear();
4545
},
4646

47-
"Atrule[name=/^keyframes$/i]:exit"() {
47+
"Atrule[name=/^(-(o|moz|webkit)-)?keyframes$/i]:exit"() {
4848
insideKeyframes = false;
4949
},
5050

tests/rules/no-duplicate-keyframe-selectors.test.js

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,18 @@ ruleTester.run("no-duplicate-keyframe-selectors", rule, {
2828
dedent`@keyframes test {
2929
from { opacity: 0; }
3030
to { opacity: 1; }
31+
}`,
32+
dedent`@-webkit-keyframes test {
33+
from { opacity: 0; }
34+
to { opacity: 1; }
35+
}`,
36+
dedent`@-moz-keyframes test {
37+
0% { opacity: 0; }
38+
100% { opacity: 1; }
39+
}`,
40+
dedent`@-o-keyframes test {
41+
0% { opacity: 0; }
42+
100% { opacity: 1; }
3143
}`,
3244
dedent`@keyframes test {
3345
0% { opacity: 0; }
@@ -71,6 +83,51 @@ ruleTester.run("no-duplicate-keyframe-selectors", rule, {
7183
code: dedent`@keyframes test {
7284
0% { opacity: 0; }
7385
0% { opacity: 1; }
86+
}`,
87+
errors: [
88+
{
89+
messageId: "duplicateKeyframeSelector",
90+
line: 3,
91+
column: 5,
92+
endLine: 3,
93+
endColumn: 7,
94+
},
95+
],
96+
},
97+
{
98+
code: dedent`@-webkit-keyframes test {
99+
0% { opacity: 0; }
100+
0% { opacity: 1; }
101+
}`,
102+
errors: [
103+
{
104+
messageId: "duplicateKeyframeSelector",
105+
line: 3,
106+
column: 5,
107+
endLine: 3,
108+
endColumn: 7,
109+
},
110+
],
111+
},
112+
{
113+
code: dedent`@-moz-keyframes test {
114+
0% { opacity: 0; }
115+
0% { opacity: 1; }
116+
}`,
117+
errors: [
118+
{
119+
messageId: "duplicateKeyframeSelector",
120+
line: 3,
121+
column: 5,
122+
endLine: 3,
123+
endColumn: 7,
124+
},
125+
],
126+
},
127+
{
128+
code: dedent`@-o-keyframes test {
129+
0% { opacity: 0; }
130+
0% { opacity: 1; }
74131
}`,
75132
errors: [
76133
{

0 commit comments

Comments
 (0)