@@ -1492,7 +1492,82 @@ describe('Parse.Query testing', () => {
1492
1492
fail ( 'should not fail' ) ;
1493
1493
done ( ) ;
1494
1494
} )
1495
- } )
1495
+ } ) ;
1496
+
1497
+ it ( 'properly nested array of mixed objects with bad ids' , ( done ) => {
1498
+ let objects = [ ] ;
1499
+ let total = 0 ;
1500
+ while ( objects . length != 5 ) {
1501
+ let object = new Parse . Object ( 'AnObject' ) ;
1502
+ object . set ( 'key' , objects . length ) ;
1503
+ objects . push ( object ) ;
1504
+ }
1505
+ while ( objects . length != 10 ) {
1506
+ let object = new Parse . Object ( 'AnotherObject' ) ;
1507
+ object . set ( 'key' , objects . length ) ;
1508
+ objects . push ( object ) ;
1509
+ }
1510
+ Parse . Object . saveAll ( objects ) . then ( ( ) => {
1511
+ let object = new Parse . Object ( "AContainer" ) ;
1512
+ for ( var i = 0 ; i < objects . length ; i ++ ) {
1513
+ if ( i % 2 == 0 ) {
1514
+ objects [ i ] . id = 'randomThing'
1515
+ } else {
1516
+ total += objects [ i ] . get ( 'key' ) ;
1517
+ }
1518
+ }
1519
+ object . set ( 'objects' , objects ) ;
1520
+ return object . save ( ) ;
1521
+ } ) . then ( ( ) => {
1522
+ let query = new Parse . Query ( 'AContainer' ) ;
1523
+ query . include ( 'objects' ) ;
1524
+ return query . find ( )
1525
+ } ) . then ( ( results ) => {
1526
+ expect ( results . length ) . toBe ( 1 ) ;
1527
+ let res = results [ 0 ] ;
1528
+ let objects = res . get ( 'objects' ) ;
1529
+ expect ( objects . length ) . toBe ( 5 ) ;
1530
+ objects . forEach ( ( object ) => {
1531
+ total -= object . get ( 'key' ) ;
1532
+ } ) ;
1533
+ expect ( total ) . toBe ( 0 ) ;
1534
+ done ( )
1535
+ } , ( err ) => {
1536
+ console . error ( err ) ;
1537
+ fail ( 'should not fail' ) ;
1538
+ done ( ) ;
1539
+ } )
1540
+ } ) ;
1541
+
1542
+ it ( 'properly fetches nested pointers' , ( done ) => {
1543
+ let color = new Parse . Object ( 'Color' ) ;
1544
+ color . set ( 'hex' , '#133733' ) ;
1545
+ let circle = new Parse . Object ( 'Circle' ) ;
1546
+ circle . set ( 'radius' , 1337 ) ;
1547
+
1548
+ Parse . Object . saveAll ( [ color , circle ] ) . then ( ( ) => {
1549
+ circle . set ( 'color' , color ) ;
1550
+ let badCircle = new Parse . Object ( 'Circle' ) ;
1551
+ badCircle . id = 'badId' ;
1552
+ let complexFigure = new Parse . Object ( 'ComplexFigure' ) ;
1553
+ complexFigure . set ( 'consistsOf' , [ circle , badCircle ] ) ;
1554
+ return complexFigure . save ( ) ;
1555
+ } ) . then ( ( ) => {
1556
+ let q = new Parse . Query ( 'ComplexFigure' ) ;
1557
+ q . include ( 'consistsOf.color' ) ;
1558
+ return q . find ( )
1559
+ } ) . then ( ( results ) => {
1560
+ expect ( results . length ) . toBe ( 1 ) ;
1561
+ let figure = results [ 0 ] ;
1562
+ expect ( figure . get ( 'consistsOf' ) . length ) . toBe ( 1 ) ;
1563
+ expect ( figure . get ( 'consistsOf' ) [ 0 ] . get ( 'color' ) . get ( 'hex' ) ) . toBe ( '#133733' ) ;
1564
+ done ( ) ;
1565
+ } , ( err ) => {
1566
+ fail ( 'should not fail' ) ;
1567
+ done ( ) ;
1568
+ } )
1569
+
1570
+ } ) ;
1496
1571
1497
1572
it ( "result object creation uses current extension" , function ( done ) {
1498
1573
var ParentObject = Parse . Object . extend ( { className : "ParentObject" } ) ;
0 commit comments