From 306cd6b669ab309874c927f5c857b72d0f87b9f4 Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Mon, 8 Dec 2025 15:50:16 +0100 Subject: [PATCH 1/3] fix(validation): incorrect validation errors when variable descriptions are used --- src/validation/__tests__/validation-test.ts | 23 +++++++++++++++++++ .../rules/ValuesOfCorrectTypeRule.ts | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/validation/__tests__/validation-test.ts b/src/validation/__tests__/validation-test.ts index 2d49f9335b..a8e40bed80 100644 --- a/src/validation/__tests__/validation-test.ts +++ b/src/validation/__tests__/validation-test.ts @@ -179,3 +179,26 @@ describe('Validate: Limit maximum number of validation errors', () => { ).to.throw(/^Error from custom rule!$/); }); }); + +describe('operation and variable definition descriptions', () => { + it('parses operation with description and variable descriptions', () => { + const schema = buildSchema( + 'type Query { field(a: Int, b: String): String }', + ); + const query = ` + "Operation description" + query myQuery( + "Variable a description" + $a: Int, + """Variable b\nmultiline description""" + $b: String + ) { + field(a: $a, b: $b) + } + `; + const ast = parse(query); + const errors = validate(schema, ast); + console.log(errors); + expect(errors.length).to.equal(0); + }); +}); diff --git a/src/validation/rules/ValuesOfCorrectTypeRule.ts b/src/validation/rules/ValuesOfCorrectTypeRule.ts index 6636e6a552..194c5bc563 100644 --- a/src/validation/rules/ValuesOfCorrectTypeRule.ts +++ b/src/validation/rules/ValuesOfCorrectTypeRule.ts @@ -116,7 +116,7 @@ export function ValuesOfCorrectTypeRule( EnumValue: (node) => isValidValueNode(context, node), IntValue: (node) => isValidValueNode(context, node), FloatValue: (node) => isValidValueNode(context, node), - StringValue: (node) => isValidValueNode(context, node), + StringValue: (node, key) => key !== "description" && isValidValueNode(context, node), BooleanValue: (node) => isValidValueNode(context, node), }; } From 561557a5873ef11b92aef28e75f79b9f41e9f360 Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Mon, 8 Dec 2025 15:52:01 +0100 Subject: [PATCH 2/3] remove console.log --- src/validation/__tests__/validation-test.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/validation/__tests__/validation-test.ts b/src/validation/__tests__/validation-test.ts index a8e40bed80..58afb6b4c3 100644 --- a/src/validation/__tests__/validation-test.ts +++ b/src/validation/__tests__/validation-test.ts @@ -198,7 +198,6 @@ describe('operation and variable definition descriptions', () => { `; const ast = parse(query); const errors = validate(schema, ast); - console.log(errors); expect(errors.length).to.equal(0); }); }); From 74f746f2ec9e9609c53d7028533b1caa78ad1faf Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Mon, 8 Dec 2025 15:53:11 +0100 Subject: [PATCH 3/3] reword --- src/validation/__tests__/validation-test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/validation/__tests__/validation-test.ts b/src/validation/__tests__/validation-test.ts index 58afb6b4c3..6194dabe8a 100644 --- a/src/validation/__tests__/validation-test.ts +++ b/src/validation/__tests__/validation-test.ts @@ -181,7 +181,7 @@ describe('Validate: Limit maximum number of validation errors', () => { }); describe('operation and variable definition descriptions', () => { - it('parses operation with description and variable descriptions', () => { + it('validates operation with description and variable descriptions', () => { const schema = buildSchema( 'type Query { field(a: Int, b: String): String }', );