Skip to content

Commit c0d65f7

Browse files
Merge pull request #2496 from johanrd/fix/2408
Post-merge review of #2408 (`template-no-autofocus-attribute`)
2 parents 8f78597 + 210d8ec commit c0d65f7

2 files changed

Lines changed: 83 additions & 1 deletion

File tree

lib/rules/template-no-autofocus-attribute.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ module.exports = {
2727
node: autofocusAttr,
2828
messageId: 'noAutofocus',
2929
fix(fixer) {
30-
// Remove the attribute including preceding whitespace
3130
const sourceCode = context.sourceCode;
3231
const text = sourceCode.getText();
3332
const attrStart = autofocusAttr.range[0];
@@ -43,6 +42,19 @@ module.exports = {
4342
});
4443
}
4544
},
45+
46+
GlimmerMustacheStatement(node) {
47+
if (!node.hash || !node.hash.pairs) {
48+
return;
49+
}
50+
const autofocusPair = node.hash.pairs.find((pair) => pair.key === 'autofocus');
51+
if (autofocusPair) {
52+
context.report({
53+
node: autofocusPair,
54+
messageId: 'noAutofocus',
55+
});
56+
}
57+
},
4658
};
4759
},
4860
};

tests/lib/rules/template-no-autofocus-attribute.js

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,5 +53,75 @@ ruleTester.run('template-no-autofocus-attribute', rule, {
5353
},
5454
],
5555
},
56+
{
57+
code: `<template>
58+
{{input type="text" autofocus=true}}
59+
</template>`,
60+
output: null,
61+
errors: [
62+
{
63+
messageId: 'noAutofocus',
64+
type: 'GlimmerHashPair',
65+
},
66+
],
67+
},
68+
{
69+
code: `<template>
70+
{{component "input" type="text" autofocus=true}}
71+
</template>`,
72+
output: null,
73+
errors: [
74+
{
75+
messageId: 'noAutofocus',
76+
type: 'GlimmerHashPair',
77+
},
78+
],
79+
},
80+
{
81+
code: `<template>
82+
<div autofocus>
83+
</div>
84+
</template>`,
85+
output: `<template>
86+
<div>
87+
</div>
88+
</template>`,
89+
errors: [
90+
{
91+
messageId: 'noAutofocus',
92+
type: 'GlimmerAttrNode',
93+
},
94+
],
95+
},
96+
{
97+
code: `<template>
98+
<h1 autofocus>
99+
</h1>
100+
</template>`,
101+
output: `<template>
102+
<h1>
103+
</h1>
104+
</template>`,
105+
errors: [
106+
{
107+
messageId: 'noAutofocus',
108+
type: 'GlimmerAttrNode',
109+
},
110+
],
111+
},
112+
{
113+
code: `<template>
114+
<input autofocus="autofocus" />
115+
</template>`,
116+
output: `<template>
117+
<input />
118+
</template>`,
119+
errors: [
120+
{
121+
messageId: 'noAutofocus',
122+
type: 'GlimmerAttrNode',
123+
},
124+
],
125+
},
56126
],
57127
});

0 commit comments

Comments
 (0)