Skip to content

Commit d3e985f

Browse files
Merge pull request #2646 from johanrd/autofix/no-positional-data-test-selectors
Post-merge-review: Restore autofix for template-no-positional-data-test-selectors
2 parents 017d63c + ae72027 commit d3e985f

4 files changed

Lines changed: 25 additions & 4 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ rules in templates can be disabled with eslint directives with mustache or html
256256
| [template-no-outlet-outside-routes](docs/rules/template-no-outlet-outside-routes.md) | disallow {{outlet}} outside of route templates | | | |
257257
| [template-no-page-title-component](docs/rules/template-no-page-title-component.md) | disallow usage of ember-page-title component | | | |
258258
| [template-no-passed-in-event-handlers](docs/rules/template-no-passed-in-event-handlers.md) | disallow passing event handlers directly as component arguments | | | |
259-
| [template-no-positional-data-test-selectors](docs/rules/template-no-positional-data-test-selectors.md) | disallow positional data-test-* params in curly invocations | | | |
259+
| [template-no-positional-data-test-selectors](docs/rules/template-no-positional-data-test-selectors.md) | disallow positional data-test-* params in curly invocations | | 🔧 | |
260260
| [template-no-potential-path-strings](docs/rules/template-no-potential-path-strings.md) | disallow potential path strings in attribute values | | | |
261261
| [template-no-redundant-fn](docs/rules/template-no-redundant-fn.md) | disallow unnecessary usage of (fn) helper | | 🔧 | |
262262
| [template-no-restricted-invocations](docs/rules/template-no-restricted-invocations.md) | disallow certain components, helpers or modifiers from being used | | | |

docs/rules/template-no-positional-data-test-selectors.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# ember/template-no-positional-data-test-selectors
22

3+
🔧 This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix).
4+
35
<!-- end auto-generated rule header -->
46

57
## Motivation

lib/rules/template-no-positional-data-test-selectors.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,13 @@ function checkNode(node, context) {
5050
context.report({
5151
node,
5252
messageId: 'noPositionalDataTest',
53+
fix(fixer) {
54+
// Convert the positional param to a hash pair by appending =true.
55+
// e.g. `data-test-foo` becomes `data-test-foo=true`
56+
const sourceCode = context.sourceCode;
57+
const paramText = sourceCode.getText(param);
58+
return fixer.replaceText(param, `${paramText}=true`);
59+
},
5360
});
5461
return;
5562
}
@@ -66,7 +73,7 @@ module.exports = {
6673
url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-positional-data-test-selectors.md',
6774
templateMode: 'both',
6875
},
69-
fixable: null,
76+
fixable: 'code',
7077
schema: [],
7178
messages: {
7279
noPositionalDataTest:

tests/lib/rules/template-no-positional-data-test-selectors.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,13 @@ ruleTester.run('template-no-positional-data-test-selectors', rule, {
7878
degreeA11yText=(t "i18n_distance_a11y_v2" distance=recipientDistance)
7979
}}
8080
</template>`,
81-
output: null,
81+
output: `<template>
82+
{{badge
83+
data-test-profile-card-one-to-one-connection-distance=true
84+
degreeText=(t "i18n_distance_v2" distance=recipientDistance)
85+
degreeA11yText=(t "i18n_distance_a11y_v2" distance=recipientDistance)
86+
}}
87+
</template>`,
8288
errors: [
8389
{
8490
message:
@@ -160,7 +166,13 @@ hbsRuleTester.run('template-no-positional-data-test-selectors', rule, {
160166
degreeA11yText=(t "i18n_distance_a11y_v2" distance=recipientDistance)
161167
}}
162168
`,
163-
output: null,
169+
output: `
170+
{{badge
171+
data-test-profile-card-one-to-one-connection-distance=true
172+
degreeText=(t "i18n_distance_v2" distance=recipientDistance)
173+
degreeA11yText=(t "i18n_distance_a11y_v2" distance=recipientDistance)
174+
}}
175+
`,
164176
errors: [
165177
{
166178
message:

0 commit comments

Comments
 (0)