@@ -1019,6 +1019,46 @@ describe('ParseGraphQLServer', () => {
1019
1019
1020
1020
expect ( payloadFields ) . toEqual ( [ 'class' , 'clientMutationId' ] ) ;
1021
1021
} ) ;
1022
+
1023
+ it ( 'should have clientMutationId in updateClass mutation input' , async ( ) => {
1024
+ const inputFields = ( await apolloClient . query ( {
1025
+ query : gql `
1026
+ query {
1027
+ __type(name: "UpdateClassInput") {
1028
+ inputFields {
1029
+ name
1030
+ }
1031
+ }
1032
+ }
1033
+ ` ,
1034
+ } ) ) . data [ '__type' ] . inputFields
1035
+ . map ( field => field . name )
1036
+ . sort ( ) ;
1037
+
1038
+ expect ( inputFields ) . toEqual ( [
1039
+ 'clientMutationId' ,
1040
+ 'name' ,
1041
+ 'schemaFields' ,
1042
+ ] ) ;
1043
+ } ) ;
1044
+
1045
+ it ( 'should have clientMutationId in updateClass mutation payload' , async ( ) => {
1046
+ const payloadFields = ( await apolloClient . query ( {
1047
+ query : gql `
1048
+ query {
1049
+ __type(name: "UpdateClassPayload") {
1050
+ fields {
1051
+ name
1052
+ }
1053
+ }
1054
+ }
1055
+ ` ,
1056
+ } ) ) . data [ '__type' ] . fields
1057
+ . map ( field => field . name )
1058
+ . sort ( ) ;
1059
+
1060
+ expect ( payloadFields ) . toEqual ( [ 'class' , 'clientMutationId' ] ) ;
1061
+ } ) ;
1022
1062
} ) ;
1023
1063
1024
1064
describe ( 'Parse Class Types' , ( ) => {
@@ -3010,6 +3050,7 @@ describe('ParseGraphQLServer', () => {
3010
3050
3011
3051
it ( 'should update an existing class' , async ( ) => {
3012
3052
try {
3053
+ const clientMutationId = uuidv4 ( ) ;
3013
3054
const result = await apolloClient . mutate ( {
3014
3055
mutation : gql `
3015
3056
mutation {
@@ -3027,7 +3068,8 @@ describe('ParseGraphQLServer', () => {
3027
3068
}
3028
3069
}
3029
3070
}
3030
- updateClass(
3071
+ updateClass(input: {
3072
+ clientMutationId: "${ clientMutationId } "
3031
3073
name: "MyNewClass"
3032
3074
schemaFields: {
3033
3075
addStrings: [
@@ -3102,16 +3144,19 @@ describe('ParseGraphQLServer', () => {
3102
3144
{ name: "doesNotExist" }
3103
3145
]
3104
3146
}
3105
- ) {
3106
- name
3107
- schemaFields {
3147
+ } ) {
3148
+ clientMutationId
3149
+ class {
3108
3150
name
3109
- __typename
3110
- ... on SchemaPointerField {
3111
- targetClassName
3112
- }
3113
- ... on SchemaRelationField {
3114
- targetClassName
3151
+ schemaFields {
3152
+ name
3153
+ __typename
3154
+ ... on SchemaPointerField {
3155
+ targetClassName
3156
+ }
3157
+ ... on SchemaRelationField {
3158
+ targetClassName
3159
+ }
3115
3160
}
3116
3161
}
3117
3162
}
@@ -3126,7 +3171,7 @@ describe('ParseGraphQLServer', () => {
3126
3171
result . data . createClass . class . schemaFields = result . data . createClass . class . schemaFields . sort (
3127
3172
( a , b ) => ( a . name > b . name ? 1 : - 1 )
3128
3173
) ;
3129
- result . data . updateClass . schemaFields = result . data . updateClass . schemaFields . sort (
3174
+ result . data . updateClass . class . schemaFields = result . data . updateClass . class . schemaFields . sort (
3130
3175
( a , b ) => ( a . name > b . name ? 1 : - 1 )
3131
3176
) ;
3132
3177
expect ( result ) . toEqual ( {
@@ -3149,56 +3194,72 @@ describe('ParseGraphQLServer', () => {
3149
3194
__typename : 'CreateClassPayload' ,
3150
3195
} ,
3151
3196
updateClass : {
3152
- name : 'MyNewClass' ,
3153
- schemaFields : [
3154
- { name : 'ACL' , __typename : 'SchemaACLField' } ,
3155
- { name : 'arrayField1' , __typename : 'SchemaArrayField' } ,
3156
- { name : 'arrayField2' , __typename : 'SchemaArrayField' } ,
3157
- { name : 'booleanField1' , __typename : 'SchemaBooleanField' } ,
3158
- { name : 'booleanField2' , __typename : 'SchemaBooleanField' } ,
3159
- { name : 'bytesField1' , __typename : 'SchemaBytesField' } ,
3160
- { name : 'bytesField2' , __typename : 'SchemaBytesField' } ,
3161
- { name : 'createdAt' , __typename : 'SchemaDateField' } ,
3162
- { name : 'dateField1' , __typename : 'SchemaDateField' } ,
3163
- { name : 'dateField2' , __typename : 'SchemaDateField' } ,
3164
- { name : 'fileField1' , __typename : 'SchemaFileField' } ,
3165
- { name : 'fileField2' , __typename : 'SchemaFileField' } ,
3166
- {
3167
- name : 'geoPointField' ,
3168
- __typename : 'SchemaGeoPointField' ,
3169
- } ,
3170
- { name : 'numberField1' , __typename : 'SchemaNumberField' } ,
3171
- { name : 'numberField2' , __typename : 'SchemaNumberField' } ,
3172
- { name : 'objectField1' , __typename : 'SchemaObjectField' } ,
3173
- { name : 'objectField2' , __typename : 'SchemaObjectField' } ,
3174
- { name : 'objectId' , __typename : 'SchemaStringField' } ,
3175
- {
3176
- name : 'pointerField1' ,
3177
- __typename : 'SchemaPointerField' ,
3178
- targetClassName : 'Class1' ,
3179
- } ,
3180
- {
3181
- name : 'pointerField2' ,
3182
- __typename : 'SchemaPointerField' ,
3183
- targetClassName : 'Class6' ,
3184
- } ,
3185
- { name : 'polygonField1' , __typename : 'SchemaPolygonField' } ,
3186
- { name : 'polygonField2' , __typename : 'SchemaPolygonField' } ,
3187
- {
3188
- name : 'relationField1' ,
3189
- __typename : 'SchemaRelationField' ,
3190
- targetClassName : 'Class1' ,
3191
- } ,
3192
- {
3193
- name : 'relationField2' ,
3194
- __typename : 'SchemaRelationField' ,
3195
- targetClassName : 'Class6' ,
3196
- } ,
3197
- { name : 'stringField1' , __typename : 'SchemaStringField' } ,
3198
- { name : 'stringField2' , __typename : 'SchemaStringField' } ,
3199
- { name : 'updatedAt' , __typename : 'SchemaDateField' } ,
3200
- ] ,
3201
- __typename : 'Class' ,
3197
+ clientMutationId,
3198
+ class : {
3199
+ name : 'MyNewClass' ,
3200
+ schemaFields : [
3201
+ { name : 'ACL' , __typename : 'SchemaACLField' } ,
3202
+ { name : 'arrayField1' , __typename : 'SchemaArrayField' } ,
3203
+ { name : 'arrayField2' , __typename : 'SchemaArrayField' } ,
3204
+ {
3205
+ name : 'booleanField1' ,
3206
+ __typename : 'SchemaBooleanField' ,
3207
+ } ,
3208
+ {
3209
+ name : 'booleanField2' ,
3210
+ __typename : 'SchemaBooleanField' ,
3211
+ } ,
3212
+ { name : 'bytesField1' , __typename : 'SchemaBytesField' } ,
3213
+ { name : 'bytesField2' , __typename : 'SchemaBytesField' } ,
3214
+ { name : 'createdAt' , __typename : 'SchemaDateField' } ,
3215
+ { name : 'dateField1' , __typename : 'SchemaDateField' } ,
3216
+ { name : 'dateField2' , __typename : 'SchemaDateField' } ,
3217
+ { name : 'fileField1' , __typename : 'SchemaFileField' } ,
3218
+ { name : 'fileField2' , __typename : 'SchemaFileField' } ,
3219
+ {
3220
+ name : 'geoPointField' ,
3221
+ __typename : 'SchemaGeoPointField' ,
3222
+ } ,
3223
+ { name : 'numberField1' , __typename : 'SchemaNumberField' } ,
3224
+ { name : 'numberField2' , __typename : 'SchemaNumberField' } ,
3225
+ { name : 'objectField1' , __typename : 'SchemaObjectField' } ,
3226
+ { name : 'objectField2' , __typename : 'SchemaObjectField' } ,
3227
+ { name : 'objectId' , __typename : 'SchemaStringField' } ,
3228
+ {
3229
+ name : 'pointerField1' ,
3230
+ __typename : 'SchemaPointerField' ,
3231
+ targetClassName : 'Class1' ,
3232
+ } ,
3233
+ {
3234
+ name : 'pointerField2' ,
3235
+ __typename : 'SchemaPointerField' ,
3236
+ targetClassName : 'Class6' ,
3237
+ } ,
3238
+ {
3239
+ name : 'polygonField1' ,
3240
+ __typename : 'SchemaPolygonField' ,
3241
+ } ,
3242
+ {
3243
+ name : 'polygonField2' ,
3244
+ __typename : 'SchemaPolygonField' ,
3245
+ } ,
3246
+ {
3247
+ name : 'relationField1' ,
3248
+ __typename : 'SchemaRelationField' ,
3249
+ targetClassName : 'Class1' ,
3250
+ } ,
3251
+ {
3252
+ name : 'relationField2' ,
3253
+ __typename : 'SchemaRelationField' ,
3254
+ targetClassName : 'Class6' ,
3255
+ } ,
3256
+ { name : 'stringField1' , __typename : 'SchemaStringField' } ,
3257
+ { name : 'stringField2' , __typename : 'SchemaStringField' } ,
3258
+ { name : 'updatedAt' , __typename : 'SchemaDateField' } ,
3259
+ ] ,
3260
+ __typename : 'Class' ,
3261
+ } ,
3262
+ __typename : 'UpdateClassPayload' ,
3202
3263
} ,
3203
3264
} ,
3204
3265
} ) ;
@@ -3313,8 +3374,8 @@ describe('ParseGraphQLServer', () => {
3313
3374
await apolloClient . mutate ( {
3314
3375
mutation : gql `
3315
3376
mutation {
3316
- updateClass(name: "SomeClass") {
3317
- name
3377
+ updateClass(input: { name: "SomeClass" } ) {
3378
+ clientMutationId
3318
3379
}
3319
3380
}
3320
3381
` ,
@@ -3360,10 +3421,12 @@ describe('ParseGraphQLServer', () => {
3360
3421
mutation : gql `
3361
3422
mutation {
3362
3423
updateClass(
3363
- name: "SomeClass"
3364
- schemaFields: { addNumbers: [{ name: "someField" }] }
3424
+ input: {
3425
+ name: "SomeClass"
3426
+ schemaFields: { addNumbers: [{ name: "someField" }] }
3427
+ }
3365
3428
) {
3366
- name
3429
+ clientMutationId
3367
3430
}
3368
3431
}
3369
3432
` ,
@@ -3390,10 +3453,12 @@ describe('ParseGraphQLServer', () => {
3390
3453
mutation : gql `
3391
3454
mutation {
3392
3455
updateClass(
3393
- name: "SomeInexistentClass"
3394
- schemaFields: { addNumbers: [{ name: "someField" }] }
3456
+ input: {
3457
+ name: "SomeInexistentClass"
3458
+ schemaFields: { addNumbers: [{ name: "someField" }] }
3459
+ }
3395
3460
) {
3396
- name
3461
+ clientMutationId
3397
3462
}
3398
3463
}
3399
3464
` ,
0 commit comments