@@ -9516,6 +9516,126 @@ describe('ParseGraphQLServer', () => {
95169516 }
95179517 } ) ;
95189518
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+
95199639 it ( 'should support object composed queries' , async ( ) => {
95209640 try {
95219641 const someObjectFieldValue1 = {
0 commit comments