@@ -237,7 +237,7 @@ describe('Parse.Relation testing', () => {
237
237
success : function ( list ) {
238
238
equal ( list . length , 1 , "There should be only one result" ) ;
239
239
equal ( list [ 0 ] . id , parent2 . id ,
240
- "Should have gotten back the right result" ) ;
240
+ "Should have gotten back the right result" ) ;
241
241
done ( ) ;
242
242
}
243
243
} ) ;
@@ -246,7 +246,7 @@ describe('Parse.Relation testing', () => {
246
246
}
247
247
} ) ;
248
248
} ) ;
249
-
249
+
250
250
it ( "queries on relation fields with multiple ins" , ( done ) => {
251
251
var ChildObject = Parse . Object . extend ( "ChildObject" ) ;
252
252
var childObjects = [ ] ;
@@ -268,7 +268,7 @@ describe('Parse.Relation testing', () => {
268
268
relation2 . add ( childObjects [ 4 ] ) ;
269
269
relation2 . add ( childObjects [ 5 ] ) ;
270
270
relation2 . add ( childObjects [ 6 ] ) ;
271
-
271
+
272
272
var otherChild2 = parent2 . relation ( "otherChild" ) ;
273
273
otherChild2 . add ( childObjects [ 0 ] ) ;
274
274
otherChild2 . add ( childObjects [ 1 ] ) ;
@@ -290,7 +290,7 @@ describe('Parse.Relation testing', () => {
290
290
done ( ) ;
291
291
} ) ;
292
292
} ) ;
293
-
293
+
294
294
it ( "query on pointer and relation fields with equal" , ( done ) => {
295
295
var ChildObject = Parse . Object . extend ( "ChildObject" ) ;
296
296
var childObjects = [ ] ;
@@ -306,29 +306,29 @@ describe('Parse.Relation testing', () => {
306
306
relation . add ( childObjects [ 0 ] ) ;
307
307
relation . add ( childObjects [ 1 ] ) ;
308
308
relation . add ( childObjects [ 2 ] ) ;
309
-
309
+
310
310
var parent2 = new ParentObject ( ) ;
311
311
parent2 . set ( "x" , 3 ) ;
312
312
parent2 . set ( "toChild" , childObjects [ 2 ] ) ;
313
-
313
+
314
314
var parents = [ ] ;
315
315
parents . push ( parent ) ;
316
316
parents . push ( parent2 ) ;
317
317
parents . push ( new ParentObject ( ) ) ;
318
-
318
+
319
319
return Parse . Object . saveAll ( parents ) . then ( ( ) => {
320
320
var query = new Parse . Query ( ParentObject ) ;
321
321
query . equalTo ( "objectId" , parent . id ) ;
322
322
query . equalTo ( "toChilds" , childObjects [ 2 ] ) ;
323
-
323
+
324
324
return query . find ( ) . then ( ( list ) => {
325
325
equal ( list . length , 1 , "There should be 1 result" ) ;
326
326
done ( ) ;
327
327
} ) ;
328
328
} ) ;
329
329
} ) ;
330
330
} ) ;
331
-
331
+
332
332
it ( "query on pointer and relation fields with equal bis" , ( done ) => {
333
333
var ChildObject = Parse . Object . extend ( "ChildObject" ) ;
334
334
var childObjects = [ ] ;
@@ -344,31 +344,31 @@ describe('Parse.Relation testing', () => {
344
344
relation . add ( childObjects [ 0 ] ) ;
345
345
relation . add ( childObjects [ 1 ] ) ;
346
346
relation . add ( childObjects [ 2 ] ) ;
347
-
347
+
348
348
var parent2 = new ParentObject ( ) ;
349
349
parent2 . set ( "x" , 3 ) ;
350
350
parent2 . relation ( "toChilds" ) . add ( childObjects [ 2 ] ) ;
351
-
351
+
352
352
var parents = [ ] ;
353
353
parents . push ( parent ) ;
354
354
parents . push ( parent2 ) ;
355
355
parents . push ( new ParentObject ( ) ) ;
356
-
356
+
357
357
return Parse . Object . saveAll ( parents ) . then ( ( ) => {
358
358
var query = new Parse . Query ( ParentObject ) ;
359
359
query . equalTo ( "objectId" , parent2 . id ) ;
360
360
// childObjects[2] is in 2 relations
361
361
// before the fix, that woul yield 2 results
362
362
query . equalTo ( "toChilds" , childObjects [ 2 ] ) ;
363
-
363
+
364
364
return query . find ( ) . then ( ( list ) => {
365
365
equal ( list . length , 1 , "There should be 1 result" ) ;
366
366
done ( ) ;
367
367
} ) ;
368
368
} ) ;
369
369
} ) ;
370
370
} ) ;
371
-
371
+
372
372
it ( "or queries on pointer and relation fields" , ( done ) => {
373
373
var ChildObject = Parse . Object . extend ( "ChildObject" ) ;
374
374
var childObjects = [ ] ;
@@ -384,16 +384,16 @@ describe('Parse.Relation testing', () => {
384
384
relation . add ( childObjects [ 0 ] ) ;
385
385
relation . add ( childObjects [ 1 ] ) ;
386
386
relation . add ( childObjects [ 2 ] ) ;
387
-
387
+
388
388
var parent2 = new ParentObject ( ) ;
389
389
parent2 . set ( "x" , 3 ) ;
390
390
parent2 . set ( "toChild" , childObjects [ 2 ] ) ;
391
-
391
+
392
392
var parents = [ ] ;
393
393
parents . push ( parent ) ;
394
394
parents . push ( parent2 ) ;
395
395
parents . push ( new ParentObject ( ) ) ;
396
-
396
+
397
397
return Parse . Object . saveAll ( parents ) . then ( ( ) => {
398
398
var query1 = new Parse . Query ( ParentObject ) ;
399
399
query1 . containedIn ( "toChilds" , [ childObjects [ 2 ] ] ) ;
@@ -501,5 +501,50 @@ describe('Parse.Relation testing', () => {
501
501
} ) ;
502
502
} ) ;
503
503
504
- } ) ;
504
+ notWorking ( 'should properly get related objects with unfetched queries' , ( done ) => {
505
+ let objects = [ ] ;
506
+ let owners = [ ] ;
507
+ let allObjects = [ ] ;
508
+ // Build 10 Objects and 10 owners
509
+ while ( objects . length != 10 ) {
510
+ let object = new Parse . Object ( 'AnObject' ) ;
511
+ object . set ( {
512
+ index : objects . length ,
513
+ even : objects . length % 2 == 0
514
+ } ) ;
515
+ objects . push ( object ) ;
516
+ let owner = new Parse . Object ( 'AnOwner' ) ;
517
+ owners . push ( owner ) ;
518
+ allObjects . push ( object ) ;
519
+ allObjects . push ( owner ) ;
520
+ }
521
+
522
+ let anotherOwner = new Parse . Object ( 'AnotherOwner' ) ;
505
523
524
+ return Parse . Object . saveAll ( allObjects . concat ( [ anotherOwner ] ) ) . then ( ( ) => {
525
+ // put all the AnObject into the anotherOwner relationKey
526
+ anotherOwner . relation ( 'relationKey' ) . add ( objects ) ;
527
+ // Set each object[i] into owner[i];
528
+ owners . forEach ( ( owner , i ) => {
529
+ owner . set ( 'key' , objects [ i ] ) ;
530
+ } ) ;
531
+ return Parse . Object . saveAll ( owners . concat ( [ anotherOwner ] ) ) ;
532
+ } ) . then ( ( ) => {
533
+ // Query on the relation of another owner
534
+ let object = new Parse . Object ( 'AnotherOwner' ) ;
535
+ object . id = anotherOwner . id ;
536
+ let relationQuery = object . relation ( 'relationKey' ) . query ( ) ;
537
+ // Just get the even ones
538
+ relationQuery . equalTo ( 'even' , true ) ;
539
+ // Make the query on anOwner
540
+ let query = new Parse . Query ( 'AnOwner' ) ;
541
+ // where key match the relation query.
542
+ query . matchesQuery ( 'key' , relationQuery ) ;
543
+ query . include ( 'key' ) ;
544
+ return query . find ( ) ;
545
+ } ) . then ( ( results ) => {
546
+ expect ( results . length ) . toBe ( 5 ) ;
547
+ done ( ) ;
548
+ } ) ;
549
+ } ) ;
550
+ } ) ;
0 commit comments