@@ -1538,6 +1538,90 @@ describe('Parse.Query testing', () => {
1538
1538
} ) ;
1539
1539
} ) ;
1540
1540
1541
+ it ( 'can order on an object string field' , function ( done ) {
1542
+ const testSet = [
1543
+ { sortField : { value : "Z" } } ,
1544
+ { sortField : { value : "A" } } ,
1545
+ { sortField : { value : "M" } } ,
1546
+ ] ;
1547
+
1548
+ const objects = testSet . map ( e => new Parse . Object ( 'Test' , e ) ) ;
1549
+ Parse . Object . saveAll ( objects )
1550
+ . then ( ( ) => new Parse . Query ( 'Test' ) . addDescending ( 'sortField.value' ) . first ( ) )
1551
+ . then ( ( result ) => {
1552
+ expect ( result . get ( 'sortField' ) . value ) . toBe ( "Z" ) ;
1553
+ return new Parse . Query ( 'Test' ) . addAscending ( 'sortField.value' ) . first ( )
1554
+ } )
1555
+ . then ( ( result ) => {
1556
+ expect ( result . get ( 'sortField' ) . value ) . toBe ( "A" ) ;
1557
+ done ( ) ;
1558
+ } )
1559
+ . catch ( done . fail ) ;
1560
+ } ) ;
1561
+
1562
+ it ( 'can order on an object string field (level 2)' , function ( done ) {
1563
+ const testSet = [
1564
+ { sortField : { value : { field : "Z" } } } ,
1565
+ { sortField : { value : { field : "A" } } } ,
1566
+ { sortField : { value : { field : "M" } } } ,
1567
+ ] ;
1568
+
1569
+ const objects = testSet . map ( e => new Parse . Object ( 'Test' , e ) ) ;
1570
+ Parse . Object . saveAll ( objects )
1571
+ . then ( ( ) => new Parse . Query ( 'Test' ) . addDescending ( 'sortField.value.field' ) . first ( ) )
1572
+ . then ( ( result ) => {
1573
+ expect ( result . get ( 'sortField' ) . value . field ) . toBe ( "Z" ) ;
1574
+ return new Parse . Query ( 'Test' ) . addAscending ( 'sortField.value.field' ) . first ( )
1575
+ } )
1576
+ . then ( ( result ) => {
1577
+ expect ( result . get ( 'sortField' ) . value . field ) . toBe ( "A" ) ;
1578
+ done ( ) ;
1579
+ } )
1580
+ . catch ( done . fail ) ;
1581
+ } ) ;
1582
+
1583
+ it ( 'can order on an object number field' , function ( done ) {
1584
+ const testSet = [
1585
+ { sortField : { value : 10 } } ,
1586
+ { sortField : { value : 1 } } ,
1587
+ { sortField : { value : 5 } } ,
1588
+ ] ;
1589
+
1590
+ const objects = testSet . map ( e => new Parse . Object ( 'Test' , e ) ) ;
1591
+ Parse . Object . saveAll ( objects )
1592
+ . then ( ( ) => new Parse . Query ( 'Test' ) . addDescending ( 'sortField.value' ) . first ( ) )
1593
+ . then ( ( result ) => {
1594
+ expect ( result . get ( 'sortField' ) . value ) . toBe ( 10 ) ;
1595
+ return new Parse . Query ( 'Test' ) . addAscending ( 'sortField.value' ) . first ( )
1596
+ } )
1597
+ . then ( ( result ) => {
1598
+ expect ( result . get ( 'sortField' ) . value ) . toBe ( 1 ) ;
1599
+ done ( ) ;
1600
+ } )
1601
+ . catch ( done . fail ) ;
1602
+ } ) ;
1603
+
1604
+ it ( 'can order on an object number field (level 2)' , function ( done ) {
1605
+ const testSet = [
1606
+ { sortField : { value : { field : 10 } } } ,
1607
+ { sortField : { value : { field : 1 } } } ,
1608
+ { sortField : { value : { field : 5 } } } ,
1609
+ ] ;
1610
+
1611
+ const objects = testSet . map ( e => new Parse . Object ( 'Test' , e ) ) ;
1612
+ Parse . Object . saveAll ( objects )
1613
+ . then ( ( ) => new Parse . Query ( 'Test' ) . addDescending ( 'sortField.value.field' ) . first ( ) )
1614
+ . then ( ( result ) => {
1615
+ expect ( result . get ( 'sortField' ) . value . field ) . toBe ( 10 ) ;
1616
+ return new Parse . Query ( 'Test' ) . addAscending ( 'sortField.value.field' ) . first ( )
1617
+ } )
1618
+ . then ( ( result ) => {
1619
+ expect ( result . get ( 'sortField' ) . value . field ) . toBe ( 1 ) ;
1620
+ done ( ) ;
1621
+ } )
1622
+ . catch ( done . fail ) ;
1623
+ } ) ;
1624
+
1541
1625
it ( "order by ascending number then descending string" , function ( done ) {
1542
1626
const strings = [ "a" , "b" , "c" , "d" ] ;
1543
1627
const makeBoxedNumber = function ( num , i ) {
0 commit comments