@@ -1338,7 +1338,7 @@ describe('ParseQuery', () => {
1338
1338
} ) ;
1339
1339
1340
1340
1341
-
1341
+
1342
1342
it ( 'overrides cached object with query results' , ( done ) => {
1343
1343
jest . dontMock ( "../ParseObject" ) ;
1344
1344
jest . resetModules ( ) ;
@@ -1347,12 +1347,12 @@ describe('ParseQuery', () => {
1347
1347
ParseQuery = require ( '../ParseQuery' ) . default ;
1348
1348
1349
1349
ParseObject . enableSingleInstance ( ) ;
1350
-
1351
- var objectToReturn = {
1352
- objectId : 'T01' ,
1353
- name : 'Name' ,
1354
- other : 'other' ,
1355
- className :"Thing" ,
1350
+
1351
+ var objectToReturn = {
1352
+ objectId : 'T01' ,
1353
+ name : 'Name' ,
1354
+ other : 'other' ,
1355
+ className :"Thing" ,
1356
1356
createdAt : '2017-01-10T10:00:00Z'
1357
1357
} ;
1358
1358
@@ -1368,10 +1368,10 @@ describe('ParseQuery', () => {
1368
1368
var testObject ;
1369
1369
q . find ( ) . then ( ( results ) => {
1370
1370
testObject = results [ 0 ] ;
1371
-
1371
+
1372
1372
expect ( testObject . get ( "name" ) ) . toBe ( "Name" ) ;
1373
1373
expect ( testObject . get ( "other" ) ) . toBe ( "other" ) ;
1374
-
1374
+
1375
1375
objectToReturn = { objectId : 'T01' , name : 'Name2' } ;
1376
1376
var q2 = new ParseQuery ( "Thing" ) ;
1377
1377
return q2 . find ( ) ;
@@ -1393,13 +1393,13 @@ describe('ParseQuery', () => {
1393
1393
ParseQuery = require ( '../ParseQuery' ) . default ;
1394
1394
1395
1395
ParseObject . enableSingleInstance ( ) ;
1396
-
1397
- var objectToReturn = {
1398
- objectId : 'T01' ,
1399
- name : 'Name' ,
1400
- other : 'other' ,
1401
- tbd : 'exists' ,
1402
- className :"Thing" ,
1396
+
1397
+ var objectToReturn = {
1398
+ objectId : 'T01' ,
1399
+ name : 'Name' ,
1400
+ other : 'other' ,
1401
+ tbd : 'exists' ,
1402
+ className :"Thing" ,
1403
1403
createdAt : '2017-01-10T10:00:00Z' ,
1404
1404
subObject : { key1 :"value" , key2 :"value2" , key3 :"thisWillGoAway" }
1405
1405
} ;
@@ -1416,14 +1416,14 @@ describe('ParseQuery', () => {
1416
1416
var testObject ;
1417
1417
return q . find ( ) . then ( ( results ) => {
1418
1418
testObject = results [ 0 ] ;
1419
-
1419
+
1420
1420
expect ( testObject . get ( "name" ) ) . toBe ( "Name" ) ;
1421
1421
expect ( testObject . get ( "other" ) ) . toBe ( "other" ) ;
1422
1422
expect ( testObject . has ( "tbd" ) ) . toBe ( true ) ;
1423
1423
expect ( testObject . get ( "subObject" ) . key1 ) . toBe ( "value" ) ;
1424
1424
expect ( testObject . get ( "subObject" ) . key2 ) . toBe ( "value2" ) ;
1425
1425
expect ( testObject . get ( "subObject" ) . key3 ) . toBe ( "thisWillGoAway" ) ;
1426
-
1426
+
1427
1427
var q2 = new ParseQuery ( "Thing" ) ;
1428
1428
q2 . select ( "other" , "tbd" , "subObject.key1" , "subObject.key3" ) ;
1429
1429
objectToReturn = { objectId : 'T01' , other : 'other2' , subObject :{ key1 :"updatedValue" } } ;
@@ -1442,7 +1442,7 @@ describe('ParseQuery', () => {
1442
1442
expect ( testObject . has ( "tbd" ) ) . toBe ( false ) ;
1443
1443
expect ( testObject . get ( "subObject" ) . key1 ) . toBe ( "updatedValue" ) ;
1444
1444
expect ( testObject . get ( "subObject" ) . key2 ) . toBe ( "value2" ) ;
1445
- expect ( testObject . get ( "subObject" ) . key3 ) . toBeUndefined ( ) ;
1445
+ expect ( testObject . get ( "subObject" ) . key3 ) . toBeUndefined ( ) ;
1446
1446
done ( ) ;
1447
1447
} , ( error ) => {
1448
1448
done . fail ( error ) ;
@@ -1457,12 +1457,12 @@ describe('ParseQuery', () => {
1457
1457
ParseQuery = require ( '../ParseQuery' ) . default ;
1458
1458
1459
1459
ParseObject . enableSingleInstance ( ) ;
1460
-
1461
- var objectToReturn = {
1462
- objectId : 'T01' ,
1463
- name : 'Name' ,
1464
- other : 'other' ,
1465
- className :"Thing" ,
1460
+
1461
+ var objectToReturn = {
1462
+ objectId : 'T01' ,
1463
+ name : 'Name' ,
1464
+ other : 'other' ,
1465
+ className :"Thing" ,
1466
1466
createdAt : '2017-01-10T10:00:00Z'
1467
1467
} ;
1468
1468
@@ -1478,10 +1478,10 @@ describe('ParseQuery', () => {
1478
1478
var testObject ;
1479
1479
q . first ( ) . then ( ( result ) => {
1480
1480
testObject = result ;
1481
-
1481
+
1482
1482
expect ( testObject . get ( "name" ) ) . toBe ( "Name" ) ;
1483
1483
expect ( testObject . get ( "other" ) ) . toBe ( "other" ) ;
1484
-
1484
+
1485
1485
objectToReturn = { objectId : 'T01' , name : 'Name2' } ;
1486
1486
var q2 = new ParseQuery ( "Thing" ) ;
1487
1487
return q2 . first ( ) ;
@@ -1503,13 +1503,13 @@ describe('ParseQuery', () => {
1503
1503
ParseQuery = require ( '../ParseQuery' ) . default ;
1504
1504
1505
1505
ParseObject . enableSingleInstance ( ) ;
1506
-
1507
- var objectToReturn = {
1508
- objectId : 'T01' ,
1509
- name : 'Name' ,
1510
- other : 'other' ,
1511
- tbd : 'exists' ,
1512
- className :"Thing" ,
1506
+
1507
+ var objectToReturn = {
1508
+ objectId : 'T01' ,
1509
+ name : 'Name' ,
1510
+ other : 'other' ,
1511
+ tbd : 'exists' ,
1512
+ className :"Thing" ,
1513
1513
subObject : { key1 :"value" , key2 :"value2" , key3 :"thisWillGoAway" } ,
1514
1514
createdAt : '2017-01-10T10:00:00Z' ,
1515
1515
} ;
@@ -1526,11 +1526,11 @@ describe('ParseQuery', () => {
1526
1526
var testObject ;
1527
1527
return q . first ( ) . then ( ( result ) => {
1528
1528
testObject = result ;
1529
-
1529
+
1530
1530
expect ( testObject . get ( "name" ) ) . toBe ( "Name" ) ;
1531
1531
expect ( testObject . get ( "other" ) ) . toBe ( "other" ) ;
1532
1532
expect ( testObject . has ( "tbd" ) ) . toBe ( true ) ;
1533
-
1533
+
1534
1534
var q2 = new ParseQuery ( "Thing" ) ;
1535
1535
q2 . select ( "other" , "tbd" , "subObject.key1" , "subObject.key3" ) ;
1536
1536
objectToReturn = { objectId : 'T01' , other : 'other2' , subObject :{ key1 :"updatedValue" } } ;
@@ -1546,10 +1546,10 @@ describe('ParseQuery', () => {
1546
1546
} ) . then ( ( ) => {
1547
1547
expect ( testObject . get ( "name" ) ) . toBe ( "Name" ) ;
1548
1548
expect ( testObject . get ( "other" ) ) . toBe ( "other2" ) ;
1549
- expect ( testObject . has ( "tbd" ) ) . toBe ( false ) ;
1549
+ expect ( testObject . has ( "tbd" ) ) . toBe ( false ) ;
1550
1550
expect ( testObject . get ( "subObject" ) . key1 ) . toBe ( "updatedValue" ) ;
1551
1551
expect ( testObject . get ( "subObject" ) . key2 ) . toBe ( "value2" ) ;
1552
- expect ( testObject . get ( "subObject" ) . key3 ) . toBeUndefined ( ) ;
1552
+ expect ( testObject . get ( "subObject" ) . key3 ) . toBeUndefined ( ) ;
1553
1553
done ( ) ;
1554
1554
} , ( error ) => {
1555
1555
done . fail ( error ) ;
@@ -1593,12 +1593,12 @@ describe('ParseQuery', () => {
1593
1593
ParseQuery = require ( '../ParseQuery' ) . default ;
1594
1594
1595
1595
ParseObject . enableSingleInstance ( ) ;
1596
-
1597
- var objectToReturn = {
1598
- objectId : 'T01' ,
1599
- name : 'Name' ,
1600
- tbd : 'exists' ,
1601
- className :"Thing" ,
1596
+
1597
+ var objectToReturn = {
1598
+ objectId : 'T01' ,
1599
+ name : 'Name' ,
1600
+ tbd : 'exists' ,
1601
+ className :"Thing" ,
1602
1602
createdAt : '2017-01-10T10:00:00Z'
1603
1603
} ;
1604
1604
@@ -1615,7 +1615,7 @@ describe('ParseQuery', () => {
1615
1615
var testObject ;
1616
1616
return q . find ( ) . then ( ( results ) => {
1617
1617
testObject = results [ 0 ] ;
1618
-
1618
+
1619
1619
expect ( testObject . get ( "name" ) ) . toBe ( "Name" ) ;
1620
1620
expect ( testObject . has ( "other" ) ) . toBe ( false ) ;
1621
1621
expect ( testObject . has ( "subObject" ) ) . toBe ( false ) ;
@@ -1635,12 +1635,12 @@ describe('ParseQuery', () => {
1635
1635
ParseQuery = require ( '../ParseQuery' ) . default ;
1636
1636
1637
1637
ParseObject . enableSingleInstance ( ) ;
1638
-
1639
- var objectToReturn = {
1640
- objectId : 'T01' ,
1641
- name : 'Name' ,
1642
- tbd : 'exists' ,
1643
- className :"Thing" ,
1638
+
1639
+ var objectToReturn = {
1640
+ objectId : 'T01' ,
1641
+ name : 'Name' ,
1642
+ tbd : 'exists' ,
1643
+ className :"Thing" ,
1644
1644
subObject1 : { foo :"bar" } ,
1645
1645
subObject2 : { foo :"bar" } ,
1646
1646
subObject3 : { foo :"bar" } ,
@@ -1660,7 +1660,7 @@ describe('ParseQuery', () => {
1660
1660
var testObject ;
1661
1661
return q . find ( ) . then ( ( results ) => {
1662
1662
testObject = results [ 0 ] ;
1663
-
1663
+
1664
1664
expect ( testObject . has ( "subObject1" ) ) . toBe ( true ) ;
1665
1665
expect ( testObject . has ( "subObject2" ) ) . toBe ( true ) ;
1666
1666
expect ( testObject . has ( "subObject3" ) ) . toBe ( true ) ;
@@ -1675,7 +1675,7 @@ describe('ParseQuery', () => {
1675
1675
expect ( testObject . has ( "subObject2" ) ) . toBe ( false ) ; //selected and not returned
1676
1676
expect ( testObject . has ( "subObject3" ) ) . toBe ( true ) ; //not selected, so should still be there
1677
1677
expect ( testObject . has ( "subObject4" ) ) . toBe ( true ) ; //selected and just added
1678
- expect ( testObject . has ( "subObject5" ) ) . toBe ( true ) ;
1678
+ expect ( testObject . has ( "subObject5" ) ) . toBe ( true ) ;
1679
1679
expect ( testObject . get ( "subObject5" ) . subSubObject ) . toBeDefined ( ) ;
1680
1680
expect ( testObject . get ( "subObject5" ) . subSubObject . bar ) . toBeDefined ( ) ; //not selected but a sibiling was, so should still be there
1681
1681
} ) . then ( ( ) => {
@@ -1685,4 +1685,67 @@ describe('ParseQuery', () => {
1685
1685
} ) ;
1686
1686
} ) ;
1687
1687
1688
+ it ( 'full text search with one parameter' , ( ) => {
1689
+ let query = new ParseQuery ( 'Item' ) ;
1690
+
1691
+ query . fullTextSearch ( 'size' , 'small' ) ;
1692
+
1693
+ expect ( query . toJSON ( ) ) . toEqual ( {
1694
+ where : {
1695
+ size : {
1696
+ $text : {
1697
+ $search : {
1698
+ $term : "small"
1699
+ }
1700
+ }
1701
+ }
1702
+ }
1703
+ } ) ;
1704
+ } ) ;
1705
+
1706
+ it ( 'full text search with all parameters' , ( ) => {
1707
+ let query = new ParseQuery ( 'Item' ) ;
1708
+
1709
+ query . fullTextSearch ( 'size' , 'medium' , 'en' , false , true ) ;
1710
+
1711
+ expect ( query . toJSON ( ) ) . toEqual ( {
1712
+ where : {
1713
+ size : {
1714
+ $text : {
1715
+ $search : {
1716
+ $term : "medium" ,
1717
+ $language : "en" ,
1718
+ $caseSensitive : false ,
1719
+ $diacriticSensitive : true
1720
+ }
1721
+ }
1722
+ }
1723
+ }
1724
+ } ) ;
1725
+
1726
+ } ) ;
1727
+
1728
+ it ( 'add the score for the full text search' , ( ) => {
1729
+ let query = new ParseQuery ( 'Item' ) ;
1730
+
1731
+ query . fullTextSearch ( 'size' , 'medium' , 'fr' ) ;
1732
+ query . sortByTextScore ( ) ;
1733
+
1734
+ expect ( query . toJSON ( ) ) . toEqual ( {
1735
+ where : {
1736
+ size : {
1737
+ $text : {
1738
+ $search : {
1739
+ $term : "medium" ,
1740
+ $language : "fr"
1741
+ }
1742
+ }
1743
+ }
1744
+ } ,
1745
+ keys : "$score" ,
1746
+ order : "$score"
1747
+ } ) ;
1748
+
1749
+ } ) ;
1750
+
1688
1751
} ) ;
0 commit comments