@@ -9515,6 +9515,118 @@ describe('ParseGraphQLServer', () => {
9515
9515
}
9516
9516
} ) ;
9517
9517
9518
+ it ( 'should support where argument on object field that contains boolean value' , async ( ) => {
9519
+ try {
9520
+ const someObjectFieldValue = {
9521
+ foo : { bar : 'baz' , qux : true } ,
9522
+ number : 10 ,
9523
+ } ;
9524
+
9525
+ await apolloClient . mutate ( {
9526
+ mutation : gql `
9527
+ mutation CreateClass($schemaFields: SchemaFieldsInput) {
9528
+ createClass(input: { name: "SomeClass", schemaFields: $schemaFields }) {
9529
+ clientMutationId
9530
+ }
9531
+ }
9532
+ ` ,
9533
+ variables : {
9534
+ schemaFields : {
9535
+ addObjects : [ { name : 'someObjectField' } ] ,
9536
+ } ,
9537
+ } ,
9538
+ context : {
9539
+ headers : {
9540
+ 'X-Parse-Master-Key' : 'test' ,
9541
+ } ,
9542
+ } ,
9543
+ } ) ;
9544
+ await parseGraphQLServer . parseGraphQLSchema . schemaCache . clear ( ) ;
9545
+
9546
+ const schema = await new Parse . Schema ( 'SomeClass' ) . get ( ) ;
9547
+ expect ( schema . fields . someObjectField . type ) . toEqual ( 'Object' ) ;
9548
+
9549
+ const createResult = await apolloClient . mutate ( {
9550
+ mutation : gql `
9551
+ mutation CreateSomeObject($fields: CreateSomeClassFieldsInput) {
9552
+ createSomeClass(input: { fields: $fields }) {
9553
+ someClass {
9554
+ id
9555
+ }
9556
+ }
9557
+ }
9558
+ ` ,
9559
+ variables : {
9560
+ fields : {
9561
+ someObjectField : someObjectFieldValue ,
9562
+ } ,
9563
+ } ,
9564
+ } ) ;
9565
+
9566
+ const whereWithQuxFalse = {
9567
+ someObjectField : {
9568
+ notEqualTo : { key : 'foo.bar' , value : 'bat' } ,
9569
+ greaterThan : { key : 'number' , value : 9 } ,
9570
+ lessThan : { key : 'number' , value : 11 } ,
9571
+ equalTo : { key : 'foo.qux' , value : false } ,
9572
+ } ,
9573
+ } ;
9574
+ const whereWithQuxTrue = {
9575
+ someObjectField : {
9576
+ ...whereWithQuxFalse . someObjectField ,
9577
+ equalTo : { key : 'foo.qux' , value : true } ,
9578
+ } ,
9579
+ } ;
9580
+ const queryResult = await apolloClient . query ( {
9581
+ query : gql `
9582
+ query GetSomeObject(
9583
+ $id: ID!
9584
+ $whereWithQuxFalse: SomeClassWhereInput
9585
+ $whereWithQuxTrue: SomeClassWhereInput
9586
+ ) {
9587
+ someClass(id: $id) {
9588
+ id
9589
+ someObjectField
9590
+ }
9591
+ someClasses(where: $whereWithQuxFalse) {
9592
+ edges {
9593
+ node {
9594
+ id
9595
+ someObjectField
9596
+ }
9597
+ }
9598
+ }
9599
+ someClassesWithQuxTrue: someClasses(where: $whereWithQuxTrue) {
9600
+ edges {
9601
+ node {
9602
+ id
9603
+ someObjectField
9604
+ }
9605
+ }
9606
+ }
9607
+ }
9608
+ ` ,
9609
+ variables : {
9610
+ id : createResult . data . createSomeClass . someClass . id ,
9611
+ whereWithQuxFalse,
9612
+ whereWithQuxTrue,
9613
+ } ,
9614
+ } ) ;
9615
+
9616
+ const { someClass : getResult , someClasses, someClassesWithQuxTrue } = queryResult . data ;
9617
+
9618
+ const { someObjectField } = getResult ;
9619
+ expect ( typeof someObjectField ) . toEqual ( 'object' ) ;
9620
+ expect ( someObjectField ) . toEqual ( someObjectFieldValue ) ;
9621
+
9622
+ // Checks class query results
9623
+ expect ( someClasses . edges . length ) . toEqual ( 0 ) ;
9624
+ expect ( someClassesWithQuxTrue . edges . length ) . toEqual ( 1 ) ;
9625
+ } catch ( e ) {
9626
+ handleError ( e ) ;
9627
+ }
9628
+ } ) ;
9629
+
9518
9630
it ( 'should support object composed queries' , async ( ) => {
9519
9631
try {
9520
9632
const someObjectFieldValue1 = {
0 commit comments