@@ -9516,6 +9516,126 @@ describe('ParseGraphQLServer', () => {
9516
9516
}
9517
9517
} ) ;
9518
9518
9519
+ it ( 'should support where argument on object field that contains false boolean value or 0 number value' , async ( ) => {
9520
+ try {
9521
+ const someObjectFieldValue = {
9522
+ foo : { bar : 'baz' , qux : true , quux : 100 } ,
9523
+ number : 10 ,
9524
+ } ;
9525
+
9526
+ const object = new Parse . Object ( 'SomeClass' ) ;
9527
+ await object . save ( {
9528
+ someObjectField : someObjectFieldValue ,
9529
+ } ) ;
9530
+
9531
+ const whereWithQuxFalse = {
9532
+ someObjectField : {
9533
+ notEqualTo : { key : 'foo.bar' , value : 'bat' } ,
9534
+ greaterThan : { key : 'number' , value : 9 } ,
9535
+ lessThan : { key : 'number' , value : 11 } ,
9536
+ equalTo : { key : 'foo.qux' , value : false } ,
9537
+ } ,
9538
+ } ;
9539
+ const whereWithQuxTrue = {
9540
+ someObjectField : {
9541
+ ...whereWithQuxFalse . someObjectField ,
9542
+ equalTo : { key : 'foo.qux' , value : true } ,
9543
+ } ,
9544
+ } ;
9545
+ const whereWithQuux0 = {
9546
+ someObjectField : {
9547
+ notEqualTo : { key : 'foo.bar' , value : 'bat' } ,
9548
+ greaterThan : { key : 'number' , value : 9 } ,
9549
+ lessThan : { key : 'number' , value : 11 } ,
9550
+ equalTo : { key : 'foo.quux' , value : 0 } ,
9551
+ } ,
9552
+ } ;
9553
+ const whereWithQuux100 = {
9554
+ someObjectField : {
9555
+ notEqualTo : { key : 'foo.bar' , value : 'bat' } ,
9556
+ greaterThan : { key : 'number' , value : 9 } ,
9557
+ lessThan : { key : 'number' , value : 11 } ,
9558
+ equalTo : { key : 'foo.quux' , value : 100 } ,
9559
+ } ,
9560
+ } ;
9561
+ const queryResult = await apolloClient . query ( {
9562
+ query : gql `
9563
+ query GetSomeObject(
9564
+ $id: ID!
9565
+ $whereWithQuxFalse: SomeClassWhereInput
9566
+ $whereWithQuxTrue: SomeClassWhereInput
9567
+ $whereWithQuux0: SomeClassWhereInput
9568
+ $whereWithQuux100: SomeClassWhereInput
9569
+ ) {
9570
+ someClass(id: $id) {
9571
+ id
9572
+ someObjectField
9573
+ }
9574
+ someClasses(where: $whereWithQuxFalse) {
9575
+ edges {
9576
+ node {
9577
+ id
9578
+ someObjectField
9579
+ }
9580
+ }
9581
+ }
9582
+ someClassesWithQuxTrue: someClasses(where: $whereWithQuxTrue) {
9583
+ edges {
9584
+ node {
9585
+ id
9586
+ someObjectField
9587
+ }
9588
+ }
9589
+ }
9590
+ someClassesWithQuux0: someClasses(where: $whereWithQuux0) {
9591
+ edges {
9592
+ node {
9593
+ id
9594
+ someObjectField
9595
+ }
9596
+ }
9597
+ }
9598
+ someClassesWithQuux100: someClasses(where: $whereWithQuux100) {
9599
+ edges {
9600
+ node {
9601
+ id
9602
+ someObjectField
9603
+ }
9604
+ }
9605
+ }
9606
+ }
9607
+ ` ,
9608
+ variables : {
9609
+ id : object . id ,
9610
+ whereWithQuxFalse,
9611
+ whereWithQuxTrue,
9612
+ whereWithQuux0,
9613
+ whereWithQuux100,
9614
+ } ,
9615
+ } ) ;
9616
+
9617
+ const {
9618
+ someClass : getResult ,
9619
+ someClasses,
9620
+ someClassesWithQuxTrue,
9621
+ someClassesWithQuux0,
9622
+ someClassesWithQuux100,
9623
+ } = queryResult . data ;
9624
+
9625
+ const { someObjectField } = getResult ;
9626
+ expect ( someObjectField ) . toEqual ( someObjectFieldValue ) ;
9627
+
9628
+ // Checks class query results
9629
+ expect ( someClasses . edges . length ) . toEqual ( 0 ) ;
9630
+ expect ( someClassesWithQuxTrue . edges . length ) . toEqual ( 1 ) ;
9631
+
9632
+ expect ( someClassesWithQuux0 . edges . length ) . toEqual ( 0 ) ;
9633
+ expect ( someClassesWithQuux100 . edges . length ) . toEqual ( 1 ) ;
9634
+ } catch ( e ) {
9635
+ handleError ( e ) ;
9636
+ }
9637
+ } ) ;
9638
+
9519
9639
it ( 'should support object composed queries' , async ( ) => {
9520
9640
try {
9521
9641
const someObjectFieldValue1 = {
0 commit comments