@@ -550,7 +550,6 @@ describe('Parse.Relation testing', () => {
550550 } ) ;
551551 return Promise . resolve ( ) ;
552552 } ) . then ( ( ) => {
553- console . log ( '' ) ;
554553 // Query on the relation of another owner
555554 let object = new Parse . Object ( 'AnotherOwner' ) ;
556555 object . id = anotherOwner . id ;
@@ -571,4 +570,86 @@ describe('Parse.Relation testing', () => {
571570 done ( ) ;
572571 } )
573572 } ) ;
573+
574+ it ( "select query" , function ( done ) {
575+ var RestaurantObject = Parse . Object . extend ( "Restaurant" ) ;
576+ var PersonObject = Parse . Object . extend ( "Person" ) ;
577+ var OwnerObject = Parse . Object . extend ( 'Owner' ) ;
578+ var restaurants = [
579+ new RestaurantObject ( { ratings : 5 , location : "Djibouti" } ) ,
580+ new RestaurantObject ( { ratings : 3 , location : "Ouagadougou" } ) ,
581+ ] ;
582+ let persons = [
583+ new PersonObject ( { name : "Bob" , hometown : "Djibouti" } ) ,
584+ new PersonObject ( { name : "Tom" , hometown : "Ouagadougou" } ) ,
585+ new PersonObject ( { name : "Billy" , hometown : "Detroit" } ) ,
586+ ] ;
587+ let owner = new OwnerObject ( { name : 'Joe' } ) ;
588+ let ownerId ;
589+ let allObjects = [ owner ] . concat ( restaurants ) . concat ( persons ) ;
590+ expect ( allObjects . length ) . toEqual ( 6 ) ;
591+ Parse . Object . saveAll ( [ owner ] . concat ( restaurants ) . concat ( persons ) ) . then ( function ( ) {
592+ ownerId = owner . id ;
593+ owner . relation ( 'restaurants' ) . add ( restaurants ) ;
594+ return owner . save ( )
595+ } ) . then ( ( ) => {
596+ let unfetchedOwner = new OwnerObject ( ) ;
597+ unfetchedOwner . id = owner . id ;
598+ var query = unfetchedOwner . relation ( 'restaurants' ) . query ( ) ;
599+ query . greaterThan ( "ratings" , 4 ) ;
600+ var mainQuery = new Parse . Query ( PersonObject ) ;
601+ mainQuery . matchesKeyInQuery ( "hometown" , "location" , query ) ;
602+ mainQuery . find ( expectSuccess ( {
603+ success : function ( results ) {
604+ equal ( results . length , 1 ) ;
605+ if ( results . length > 0 ) {
606+ equal ( results [ 0 ] . get ( 'name' ) , 'Bob' ) ;
607+ }
608+ done ( ) ;
609+ }
610+ } ) ) ;
611+ } ) ;
612+ } ) ;
613+
614+ it ( "dontSelect query" , function ( done ) {
615+ var RestaurantObject = Parse . Object . extend ( "Restaurant" ) ;
616+ var PersonObject = Parse . Object . extend ( "Person" ) ;
617+ var OwnerObject = Parse . Object . extend ( 'Owner' ) ;
618+ var restaurants = [
619+ new RestaurantObject ( { ratings : 5 , location : "Djibouti" } ) ,
620+ new RestaurantObject ( { ratings : 3 , location : "Ouagadougou" } ) ,
621+ ] ;
622+ let persons = [
623+ new PersonObject ( { name : "Bob" , hometown : "Djibouti" } ) ,
624+ new PersonObject ( { name : "Tom" , hometown : "Ouagadougou" } ) ,
625+ new PersonObject ( { name : "Billy" , hometown : "Detroit" } ) ,
626+ ] ;
627+ let owner = new OwnerObject ( { name : 'Joe' } ) ;
628+ let ownerId ;
629+ let allObjects = [ owner ] . concat ( restaurants ) . concat ( persons ) ;
630+ expect ( allObjects . length ) . toEqual ( 6 ) ;
631+ Parse . Object . saveAll ( [ owner ] . concat ( restaurants ) . concat ( persons ) ) . then ( function ( ) {
632+ ownerId = owner . id ;
633+ owner . relation ( 'restaurants' ) . add ( restaurants ) ;
634+ return owner . save ( )
635+ } ) . then ( ( ) => {
636+ let unfetchedOwner = new OwnerObject ( ) ;
637+ unfetchedOwner . id = owner . id ;
638+ var query = unfetchedOwner . relation ( 'restaurants' ) . query ( ) ;
639+ query . greaterThan ( "ratings" , 4 ) ;
640+ var mainQuery = new Parse . Query ( PersonObject ) ;
641+ mainQuery . doesNotMatchKeyInQuery ( "hometown" , "location" , query ) ;
642+ mainQuery . ascending ( 'name' ) ;
643+ mainQuery . find ( expectSuccess ( {
644+ success : function ( results ) {
645+ equal ( results . length , 2 ) ;
646+ if ( results . length > 0 ) {
647+ equal ( results [ 0 ] . get ( 'name' ) , 'Billy' ) ;
648+ equal ( results [ 1 ] . get ( 'name' ) , 'Tom' ) ;
649+ }
650+ done ( ) ;
651+ }
652+ } ) ) ;
653+ } ) ;
654+ } ) ;
574655} ) ;
0 commit comments