@@ -41,6 +41,74 @@ describe('RenameInputObjectFields', () => {
41
41
return 'field3' ;
42
42
}
43
43
} ) ,
44
+ new RenameInputObjectFields ( ( typeName , fieldName ) => {
45
+ if ( typeName === 'InputObject' && fieldName === 'field1' ) {
46
+ return 'field0' ;
47
+ }
48
+ } ) ,
49
+ ] ,
50
+ } ) ;
51
+
52
+ const query = /* GraphQL */ `
53
+ query ($argument: InputObject) {
54
+ test(argument: $argument) {
55
+ field1
56
+ field2
57
+ }
58
+ }
59
+ ` ;
60
+
61
+ const result = await execute ( {
62
+ schema : transformedSchema ,
63
+ document : parse ( query ) ,
64
+ variableValues : { argument : { field0 : 'field1' , field3 : 'field2' } } ,
65
+ } ) ;
66
+ if ( isIncrementalResult ( result ) ) throw Error ( 'result is incremental' ) ;
67
+ assertSome ( result . data ) ;
68
+ const testData : any = result . data [ 'test' ] ;
69
+ expect ( testData . field1 ) . toBe ( 'field1' ) ;
70
+ expect ( testData . field2 ) . toBe ( 'field2' ) ;
71
+ } ) ;
72
+
73
+ test ( 'renaming with static arguments works' , async ( ) => {
74
+ const schema = makeExecutableSchema ( {
75
+ typeDefs : /* GraphQL */ `
76
+ input InputObject {
77
+ field1: String
78
+ field2: String
79
+ }
80
+
81
+ type OutputObject {
82
+ field1: String
83
+ field2: String
84
+ }
85
+
86
+ type Query {
87
+ test(argument: InputObject): OutputObject
88
+ }
89
+ ` ,
90
+ resolvers : {
91
+ Query : {
92
+ test : ( _root , args ) => {
93
+ return args . argument ;
94
+ } ,
95
+ } ,
96
+ } ,
97
+ } ) ;
98
+
99
+ const transformedSchema = wrapSchema ( {
100
+ schema,
101
+ transforms : [
102
+ new RenameInputObjectFields ( ( typeName , fieldName ) => {
103
+ if ( typeName === 'InputObject' && fieldName === 'field2' ) {
104
+ return 'field3' ;
105
+ }
106
+ } ) ,
107
+ new RenameInputObjectFields ( ( typeName , fieldName ) => {
108
+ if ( typeName === 'InputObject' && fieldName === 'field1' ) {
109
+ return 'field0' ;
110
+ }
111
+ } ) ,
44
112
] ,
45
113
} ) ;
46
114
0 commit comments