@@ -1140,7 +1140,7 @@ describe('ParseQuery', () => {
1140
1140
size : 'small'
1141
1141
}
1142
1142
} ) ;
1143
- expect ( options ) . toEqual ( { } ) ;
1143
+ expect ( options . requestTask ) . toBeDefined ( ) ;
1144
1144
return Promise . resolve ( {
1145
1145
results : [
1146
1146
{ objectId : 'I1' , size : 'small' , name : 'Product 3' }
@@ -1173,10 +1173,8 @@ describe('ParseQuery', () => {
1173
1173
size : 'small'
1174
1174
}
1175
1175
} ) ;
1176
- expect ( options ) . toEqual ( {
1177
- useMasterKey : true ,
1178
- sessionToken : '1234'
1179
- } ) ;
1176
+ expect ( options . useMasterKey ) . toEqual ( true ) ;
1177
+ expect ( options . sessionToken ) . toEqual ( '1234' ) ;
1180
1178
return Promise . resolve ( {
1181
1179
results : [ ]
1182
1180
} ) ;
@@ -1204,7 +1202,7 @@ describe('ParseQuery', () => {
1204
1202
objectId : 'I27'
1205
1203
}
1206
1204
} ) ;
1207
- expect ( options ) . toEqual ( { } ) ;
1205
+ expect ( options . requestTask ) . toBeDefined ( ) ;
1208
1206
return Promise . resolve ( {
1209
1207
results : [
1210
1208
{ objectId : 'I27' , size : 'large' , name : 'Product 27' }
@@ -1237,7 +1235,7 @@ describe('ParseQuery', () => {
1237
1235
objectId : 'I28'
1238
1236
}
1239
1237
} ) ;
1240
- expect ( options ) . toEqual ( { } ) ;
1238
+ expect ( options . requestTask ) . toBeDefined ( ) ;
1241
1239
return Promise . resolve ( {
1242
1240
results : [ ]
1243
1241
} ) ;
@@ -1267,10 +1265,8 @@ describe('ParseQuery', () => {
1267
1265
objectId : 'I27'
1268
1266
}
1269
1267
} ) ;
1270
- expect ( options ) . toEqual ( {
1271
- useMasterKey : true ,
1272
- sessionToken : '1234'
1273
- } ) ;
1268
+ expect ( options . useMasterKey ) . toEqual ( true ) ;
1269
+ expect ( options . sessionToken ) . toEqual ( '1234' ) ;
1274
1270
return Promise . resolve ( {
1275
1271
results : [
1276
1272
{ objectId : 'I27' , size : 'large' , name : 'Product 27' }
@@ -1300,7 +1296,7 @@ describe('ParseQuery', () => {
1300
1296
size : 'small'
1301
1297
}
1302
1298
} ) ;
1303
- expect ( options ) . toEqual ( { } ) ;
1299
+ expect ( options . requestTask ) . toBeDefined ( ) ;
1304
1300
return Promise . resolve ( {
1305
1301
results : [ ] ,
1306
1302
count : 145
@@ -1327,10 +1323,8 @@ describe('ParseQuery', () => {
1327
1323
size : 'small'
1328
1324
}
1329
1325
} ) ;
1330
- expect ( options ) . toEqual ( {
1331
- useMasterKey : true ,
1332
- sessionToken : '1234'
1333
- } ) ;
1326
+ expect ( options . useMasterKey ) . toEqual ( true ) ;
1327
+ expect ( options . sessionToken ) . toEqual ( '1234' ) ;
1334
1328
return Promise . resolve ( {
1335
1329
results : [ ] ,
1336
1330
count : 145
@@ -1368,7 +1362,7 @@ describe('ParseQuery', () => {
1368
1362
includeReadPreference : 'SECONDARY' ,
1369
1363
subqueryReadPreference : 'SECONDARY_PREFERRED' ,
1370
1364
} ) ;
1371
- expect ( options ) . toEqual ( { } ) ;
1365
+ expect ( options . requestTask ) . toBeDefined ( ) ;
1372
1366
return Promise . resolve ( {
1373
1367
results : [
1374
1368
{ objectId : 'I55' , size : 'medium' , name : 'Product 55' } ,
@@ -1414,10 +1408,8 @@ describe('ParseQuery', () => {
1414
1408
}
1415
1409
}
1416
1410
} ) ;
1417
- expect ( options ) . toEqual ( {
1418
- useMasterKey : true ,
1419
- sessionToken : '1234'
1420
- } ) ;
1411
+ expect ( options . useMasterKey ) . toEqual ( true ) ;
1412
+ expect ( options . sessionToken ) . toEqual ( '1234' ) ;
1421
1413
return Promise . resolve ( {
1422
1414
results : [ ]
1423
1415
} ) ;
@@ -1445,10 +1437,8 @@ describe('ParseQuery', () => {
1445
1437
where : { } ,
1446
1438
count : 1
1447
1439
} ) ;
1448
- expect ( options ) . toEqual ( {
1449
- useMasterKey : true ,
1450
- sessionToken : '1234'
1451
- } ) ;
1440
+ expect ( options . useMasterKey ) . toEqual ( true ) ;
1441
+ expect ( options . sessionToken ) . toEqual ( '1234' ) ;
1452
1442
return Promise . resolve ( {
1453
1443
results :[
1454
1444
{ objectId : '1' , name : 'Product 55' } ,
@@ -1502,7 +1492,7 @@ describe('ParseQuery', () => {
1502
1492
valid : true
1503
1493
}
1504
1494
} ) ;
1505
- expect ( options ) . toEqual ( { } ) ;
1495
+ expect ( options . requestTask ) . toBeDefined ( ) ;
1506
1496
return Promise . resolve ( {
1507
1497
results : [
1508
1498
{ objectId : 'I55' , size : 'medium' , name : 'Product 55' } ,
@@ -1549,10 +1539,8 @@ describe('ParseQuery', () => {
1549
1539
valid : true
1550
1540
}
1551
1541
} ) ;
1552
- expect ( options ) . toEqual ( {
1553
- useMasterKey : true ,
1554
- sessionToken : '1234'
1555
- } ) ;
1542
+ expect ( options . useMasterKey ) . toEqual ( true ) ;
1543
+ expect ( options . sessionToken ) . toEqual ( '1234' ) ;
1556
1544
return Promise . resolve ( {
1557
1545
results : [
1558
1546
{ objectId : 'I55' , size : 'medium' , name : 'Product 55' } ,
@@ -1964,7 +1952,8 @@ describe('ParseQuery', () => {
1964
1952
size : 'small'
1965
1953
}
1966
1954
} ) ;
1967
- expect ( options ) . toEqual ( { useMasterKey : true } ) ;
1955
+ expect ( options . useMasterKey ) . toEqual ( true ) ;
1956
+ expect ( options . requestTask ) . toBeDefined ( ) ;
1968
1957
return Promise . resolve ( {
1969
1958
results : [ 'L' ] ,
1970
1959
} ) ;
@@ -1989,10 +1978,9 @@ describe('ParseQuery', () => {
1989
1978
size : 'small'
1990
1979
}
1991
1980
} ) ;
1992
- expect ( options ) . toEqual ( {
1993
- useMasterKey : true ,
1994
- sessionToken : '1234'
1995
- } ) ;
1981
+ expect ( options . useMasterKey ) . toEqual ( true ) ;
1982
+ expect ( options . sessionToken ) . toEqual ( '1234' ) ;
1983
+ expect ( options . requestTask ) . toBeDefined ( ) ;
1996
1984
return Promise . resolve ( {
1997
1985
results : [ 'L' ]
1998
1986
} ) ;
@@ -2020,7 +2008,8 @@ describe('ParseQuery', () => {
2020
2008
expect ( params ) . toEqual ( {
2021
2009
pipeline : [ { group : { objectId : '$name' } } ]
2022
2010
} ) ;
2023
- expect ( options ) . toEqual ( { useMasterKey : true } ) ;
2011
+ expect ( options . useMasterKey ) . toEqual ( true ) ;
2012
+ expect ( options . requestTask ) . toBeDefined ( ) ;
2024
2013
return Promise . resolve ( {
2025
2014
results : [ ] ,
2026
2015
} ) ;
@@ -2045,7 +2034,8 @@ describe('ParseQuery', () => {
2045
2034
expect ( params ) . toEqual ( {
2046
2035
pipeline : { group : { objectId : '$name' } }
2047
2036
} ) ;
2048
- expect ( options ) . toEqual ( { useMasterKey : true } ) ;
2037
+ expect ( options . useMasterKey ) . toEqual ( true ) ;
2038
+ expect ( options . requestTask ) . toBeDefined ( ) ;
2049
2039
return Promise . resolve ( {
2050
2040
results : [ ] ,
2051
2041
} ) ;
@@ -2068,7 +2058,8 @@ describe('ParseQuery', () => {
2068
2058
expect ( params ) . toEqual ( {
2069
2059
group : { objectId : '$name' }
2070
2060
} ) ;
2071
- expect ( options ) . toEqual ( { useMasterKey : true } ) ;
2061
+ expect ( options . useMasterKey ) . toEqual ( true ) ;
2062
+ expect ( options . requestTask ) . toBeDefined ( ) ;
2072
2063
return Promise . resolve ( {
2073
2064
results : [ ] ,
2074
2065
} ) ;
@@ -2094,10 +2085,8 @@ describe('ParseQuery', () => {
2094
2085
expect ( params ) . toEqual ( {
2095
2086
pipeline : [ { group : { objectId : '$name' } } ]
2096
2087
} ) ;
2097
- expect ( options ) . toEqual ( {
2098
- useMasterKey : true ,
2099
- sessionToken : '1234'
2100
- } ) ;
2088
+ expect ( options . useMasterKey ) . toEqual ( true ) ;
2089
+ expect ( options . sessionToken ) . toEqual ( '1234' ) ;
2101
2090
return Promise . resolve ( {
2102
2091
results : [ ]
2103
2092
} ) ;
@@ -2113,6 +2102,33 @@ describe('ParseQuery', () => {
2113
2102
} ) ;
2114
2103
} ) ;
2115
2104
2105
+ it ( 'can cancel query' , async ( ) => {
2106
+ const mockRequestTask = {
2107
+ abort : ( ) => { } ,
2108
+ } ;
2109
+
2110
+ CoreManager . setQueryController ( {
2111
+ find : function ( name , params , options ) {
2112
+ options . requestTask ( mockRequestTask ) ;
2113
+ return Promise . resolve ( {
2114
+ results : [ ]
2115
+ } ) ;
2116
+ } ,
2117
+ aggregate : ( ) => { } ,
2118
+ } ) ;
2119
+ const query = new ParseQuery ( 'TestCancel' ) ;
2120
+
2121
+ jest . spyOn ( mockRequestTask , 'abort' ) ;
2122
+ query . cancel ( ) ;
2123
+ expect ( mockRequestTask . abort ) . toHaveBeenCalledTimes ( 0 ) ;
2124
+
2125
+ await query . find ( ) ;
2126
+
2127
+ expect ( query . _xhrRequest . task ) . toEqual ( mockRequestTask ) ;
2128
+ query . cancel ( ) ;
2129
+ expect ( mockRequestTask . abort ) . toHaveBeenCalledTimes ( 1 ) ;
2130
+ } ) ;
2131
+
2116
2132
it ( 'selecting sub-objects does not inject objects when sub-object does not exist' , ( done ) => {
2117
2133
jest . dontMock ( "../ParseObject" ) ;
2118
2134
jest . resetModules ( ) ;
0 commit comments