diff --git a/lib/rules/template-no-chained-this.js b/lib/rules/template-no-chained-this.js
index f62245fbee..8fb1649c9f 100644
--- a/lib/rules/template-no-chained-this.js
+++ b/lib/rules/template-no-chained-this.js
@@ -57,9 +57,20 @@ module.exports = {
node,
messageId: 'noChainedThis',
fix(fixer) {
+ const fixes = [];
+
// Replace the tag name after '<'
const openStart = node.range[0] + 1;
- return fixer.replaceTextRange([openStart, openStart + node.tag.length], fixedTag);
+ fixes.push(fixer.replaceTextRange([openStart, openStart + node.tag.length], fixedTag));
+
+ // For non-self-closing elements, also fix the closing tag
+ if (!node.selfClosing) {
+ const closingEnd = node.range[1] - 1; // before '>'
+ const closingStart = closingEnd - node.tag.length; // start of tag name in
+ fixes.push(fixer.replaceTextRange([closingStart, closingEnd], fixedTag));
+ }
+
+ return fixes;
},
});
},
diff --git a/tests/lib/rules/template-no-chained-this.js b/tests/lib/rules/template-no-chained-this.js
index 2e8a481b90..cd6f39fa89 100644
--- a/tests/lib/rules/template-no-chained-this.js
+++ b/tests/lib/rules/template-no-chained-this.js
@@ -47,5 +47,10 @@ ruleTester.run('template-no-chained-this', rule, {
output: '{{component this.dynamicComponent}}',
errors: [{ messageId: 'noChainedThis' }],
},
+ {
+ code: 'content',
+ output: 'content',
+ errors: [{ messageId: 'noChainedThis' }],
+ },
],
});