Skip to content

Commit d9386ad

Browse files
authored
fix autofix sort for variables in alphabetize rule (#980)
* fix autofix sort for variables in `alphabetize` rule * add changeset
1 parent 2cbaa60 commit d9386ad

File tree

4 files changed

+31
-23
lines changed

4 files changed

+31
-23
lines changed

.changeset/tall-kids-compete.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@graphql-eslint/eslint-plugin': patch
3+
---
4+
5+
fix autofix sort for variables in `alphabetize` rule

packages/plugin/src/rules/alphabetize.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,9 @@ const rule: GraphQLESLintRule<[AlphabetizeConfig]> = {
242242
}
243243

244244
function getRangeWithComments(node): AST.Range {
245+
if (node.kind === Kind.VARIABLE) {
246+
node = node.parent
247+
}
245248
const [firstBeforeComment] = getBeforeComments(node);
246249
const [firstAfterComment] = sourceCode.getCommentsAfter(node);
247250
const from = firstBeforeComment || node;

packages/plugin/tests/__snapshots__/alphabetize.spec.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ exports[` 7`] = `
256256
exports[` 8`] = `
257257
Code
258258

259-
1 | directive @test(cc: Int, bb: Int, aa: Int) on FIELD_DEFINITION
259+
1 | directive @test(cc: [Cc!]!, bb: [Bb!], aa: Aa!) on FIELD_DEFINITION
260260

261261
⚙️ Options
262262

@@ -268,24 +268,24 @@ Code
268268

269269
❌ Error 1/2
270270

271-
> 1 | directive @test(cc: Int, bb: Int, aa: Int) on FIELD_DEFINITION
272-
| ^^ \`bb\` should be before \`cc\`.
271+
> 1 | directive @test(cc: [Cc!]!, bb: [Bb!], aa: Aa!) on FIELD_DEFINITION
272+
| ^^ \`bb\` should be before \`cc\`.
273273

274274
❌ Error 2/2
275275

276-
> 1 | directive @test(cc: Int, bb: Int, aa: Int) on FIELD_DEFINITION
277-
| ^^ \`aa\` should be before \`bb\`.
276+
> 1 | directive @test(cc: [Cc!]!, bb: [Bb!], aa: Aa!) on FIELD_DEFINITION
277+
| ^^ \`aa\` should be before \`bb\`.
278278

279279
🔧 Autofix output
280280

281-
1 | directive @test(aa: Int, bb: Int, cc: Int) on FIELD_DEFINITION
281+
1 | directive @test(aa: Aa!, bb: [Bb!], cc: [Cc!]!) on FIELD_DEFINITION
282282
`;
283283

284284
exports[` 9`] = `
285285
Code
286286

287287
1 | type Query {
288-
2 | test(cc: Int, bb: Int, aa: Int): Int
288+
2 | test(cc: [Cc!]!, bb: [Bb!], aa: Aa!): Int
289289
3 | }
290290

291291
⚙️ Options
@@ -299,21 +299,21 @@ Code
299299
❌ Error 1/2
300300

301301
1 | type Query {
302-
> 2 | test(cc: Int, bb: Int, aa: Int): Int
303-
| ^^ \`bb\` should be before \`cc\`.
302+
> 2 | test(cc: [Cc!]!, bb: [Bb!], aa: Aa!): Int
303+
| ^^ \`bb\` should be before \`cc\`.
304304
3 | }
305305

306306
❌ Error 2/2
307307

308308
1 | type Query {
309-
> 2 | test(cc: Int, bb: Int, aa: Int): Int
310-
| ^^ \`aa\` should be before \`bb\`.
309+
> 2 | test(cc: [Cc!]!, bb: [Bb!], aa: Aa!): Int
310+
| ^^ \`aa\` should be before \`bb\`.
311311
3 | }
312312

313313
🔧 Autofix output
314314

315315
1 | type Query {
316-
2 | test(aa: Int, bb: Int, cc: Int): Int
316+
2 | test(aa: Aa!, bb: [Bb!], cc: [Cc!]!): Int
317317
3 | }
318318
`;
319319

@@ -428,7 +428,7 @@ Code
428428
exports[` 12`] = `
429429
Code
430430

431-
1 | mutation ($cc: Int, $bb: Int, $aa: Int) {
431+
1 | mutation ($cc: [Cc!]!, $bb: [Bb!], $aa: Aa!) {
432432
2 | test(ccc: $cc, bbb: $bb, aaa: $aa) {
433433
3 | something
434434
4 | }
@@ -447,33 +447,33 @@ Code
447447

448448
❌ Error 1/4
449449

450-
> 1 | mutation ($cc: Int, $bb: Int, $aa: Int) {
451-
| ^^ \`bb\` should be before \`cc\`.
450+
> 1 | mutation ($cc: [Cc!]!, $bb: [Bb!], $aa: Aa!) {
451+
| ^^ \`bb\` should be before \`cc\`.
452452
2 | test(ccc: $cc, bbb: $bb, aaa: $aa) {
453453

454454
❌ Error 2/4
455455

456-
> 1 | mutation ($cc: Int, $bb: Int, $aa: Int) {
457-
| ^^ \`aa\` should be before \`bb\`.
456+
> 1 | mutation ($cc: [Cc!]!, $bb: [Bb!], $aa: Aa!) {
457+
| ^^ \`aa\` should be before \`bb\`.
458458
2 | test(ccc: $cc, bbb: $bb, aaa: $aa) {
459459

460460
❌ Error 3/4
461461

462-
1 | mutation ($cc: Int, $bb: Int, $aa: Int) {
462+
1 | mutation ($cc: [Cc!]!, $bb: [Bb!], $aa: Aa!) {
463463
> 2 | test(ccc: $cc, bbb: $bb, aaa: $aa) {
464464
| ^^^ \`bbb\` should be before \`ccc\`.
465465
3 | something
466466

467467
❌ Error 4/4
468468

469-
1 | mutation ($cc: Int, $bb: Int, $aa: Int) {
469+
1 | mutation ($cc: [Cc!]!, $bb: [Bb!], $aa: Aa!) {
470470
> 2 | test(ccc: $cc, bbb: $bb, aaa: $aa) {
471471
| ^^^ \`aaa\` should be before \`bbb\`.
472472
3 | something
473473

474474
🔧 Autofix output
475475

476-
1 | mutation ($aa: Int, $bb: Int, $cc: Int) {
476+
1 | mutation ($aa: Aa!, $bb: [Bb!], $cc: [Cc!]!) {
477477
2 | test(aaa: $aa, bbb: $bb, ccc: $cc) {
478478
3 | something
479479
4 | }

packages/plugin/tests/alphabetize.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,15 +146,15 @@ ruleTester.runGraphQLTests<[AlphabetizeConfig]>('alphabetize', rule, {
146146
{
147147
options: [{ arguments: ['DirectiveDefinition'] }],
148148
code: /* GraphQL */ `
149-
directive @test(cc: Int, bb: Int, aa: Int) on FIELD_DEFINITION
149+
directive @test(cc: [Cc!]!, bb: [Bb!], aa: Aa!) on FIELD_DEFINITION
150150
`,
151151
errors: [{ message: '`bb` should be before `cc`.' }, { message: '`aa` should be before `bb`.' }],
152152
},
153153
{
154154
options: [{ arguments: ['FieldDefinition'] }],
155155
code: /* GraphQL */ `
156156
type Query {
157-
test(cc: Int, bb: Int, aa: Int): Int
157+
test(cc: [Cc!]!, bb: [Bb!], aa: Aa!): Int
158158
}
159159
`,
160160
errors: [{ message: '`bb` should be before `cc`.' }, { message: '`aa` should be before `bb`.' }],
@@ -196,7 +196,7 @@ ruleTester.runGraphQLTests<[AlphabetizeConfig]>('alphabetize', rule, {
196196
{
197197
options: [{ variables: ['OperationDefinition'], arguments: ['Field'] }],
198198
code: /* GraphQL */ `
199-
mutation ($cc: Int, $bb: Int, $aa: Int) {
199+
mutation ($cc: [Cc!]!, $bb: [Bb!], $aa: Aa!) {
200200
test(ccc: $cc, bbb: $bb, aaa: $aa) {
201201
something
202202
}

0 commit comments

Comments
 (0)