From 138188b0f9c9bb4c2f7d000143c99908d8c47b4b Mon Sep 17 00:00:00 2001 From: Trevor Scheer <trevor.scheer@gmail.com> Date: Fri, 3 Sep 2021 15:07:47 -0700 Subject: [PATCH 1/3] Demonstrate issue with failing test --- src/type/__tests__/definition-test.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/type/__tests__/definition-test.ts b/src/type/__tests__/definition-test.ts index 1cf4e4f397..66600dc84b 100644 --- a/src/type/__tests__/definition-test.ts +++ b/src/type/__tests__/definition-test.ts @@ -818,6 +818,22 @@ describe('Type System: Input Objects', () => { ); }); }); + + describe('Deprecation reason is preserved on fields', () => { + const inputObjType = new GraphQLInputObjectType({ + name: 'SomeInputObject', + fields: { + deprecatedField: { + type: ScalarType, + deprecationReason: 'not used anymore', + }, + }, + }); + const config = inputObjType.toConfig(); + expect(config.fields.deprecatedField.deprecationReason).to.equal( + 'not used anymore', + ); + }); }); describe('Type System: List', () => { From 6ae37e5c695f059ae7991673aa16ae09be628593 Mon Sep 17 00:00:00 2001 From: Trevor Scheer <trevor.scheer@gmail.com> Date: Fri, 3 Sep 2021 15:08:24 -0700 Subject: [PATCH 2/3] Include deprecationReason when capturing fields in toConfig() --- src/type/definition.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/type/definition.ts b/src/type/definition.ts index 6e5f0fe409..c93148aaed 100644 --- a/src/type/definition.ts +++ b/src/type/definition.ts @@ -1650,6 +1650,7 @@ export class GraphQLInputObjectType { defaultValue: field.defaultValue, extensions: field.extensions, astNode: field.astNode, + deprecationReason: field.deprecationReason, })); return { From 61dfa054f3283954193fe37a993bec708a1618ae Mon Sep 17 00:00:00 2001 From: Ivan Goncharov <ivan.goncharov.ua@gmail.com> Date: Mon, 6 Sep 2021 07:03:15 +0300 Subject: [PATCH 3/3] review changes --- src/type/__tests__/definition-test.ts | 6 +++--- src/type/definition.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/type/__tests__/definition-test.ts b/src/type/__tests__/definition-test.ts index 66600dc84b..7011937c97 100644 --- a/src/type/__tests__/definition-test.ts +++ b/src/type/__tests__/definition-test.ts @@ -819,7 +819,7 @@ describe('Type System: Input Objects', () => { }); }); - describe('Deprecation reason is preserved on fields', () => { + it('Deprecation reason is preserved on fields', () => { const inputObjType = new GraphQLInputObjectType({ name: 'SomeInputObject', fields: { @@ -829,8 +829,8 @@ describe('Type System: Input Objects', () => { }, }, }); - const config = inputObjType.toConfig(); - expect(config.fields.deprecatedField.deprecationReason).to.equal( + expect(inputObjType.toConfig()).to.have.nested.property( + 'fields.deprecatedField.deprecationReason', 'not used anymore', ); }); diff --git a/src/type/definition.ts b/src/type/definition.ts index c93148aaed..42b2b42a30 100644 --- a/src/type/definition.ts +++ b/src/type/definition.ts @@ -1648,9 +1648,9 @@ export class GraphQLInputObjectType { description: field.description, type: field.type, defaultValue: field.defaultValue, + deprecationReason: field.deprecationReason, extensions: field.extensions, astNode: field.astNode, - deprecationReason: field.deprecationReason, })); return {