@@ -1227,6 +1227,66 @@ function runTest(controller) {
12271227 assert . equal ( results [ 0 ] . id , parent3 . id ) ;
12281228 } ) ;
12291229
1230+ it ( `${ controller . name } can handle containsAll query on array` , async ( ) => {
1231+ const obj1 = new TestObject ( { arrayField : [ 1 , 2 , 3 , 4 ] } ) ;
1232+ const obj2 = new TestObject ( { arrayField : [ 0 , 2 ] } ) ;
1233+ const obj3 = new TestObject ( { arrayField : [ 1 , 2 , 3 ] } ) ;
1234+ await Parse . Object . saveAll ( [ obj1 , obj2 , obj3 ] ) ;
1235+ await Parse . Object . pinAll ( [ obj1 , obj2 , obj3 ] ) ;
1236+
1237+ let query = new Parse . Query ( TestObject ) ;
1238+ query . containsAll ( 'arrayField' , [ 1 , 2 ] ) ;
1239+ query . fromPin ( ) ;
1240+ let results = await query . find ( ) ;
1241+ expect ( results . length ) . toBe ( 2 ) ;
1242+
1243+ query = new Parse . Query ( TestObject ) ;
1244+ query . containsAll ( 'arrayField' , [ 5 , 6 ] ) ;
1245+ query . fromPin ( ) ;
1246+ results = await query . find ( ) ;
1247+ expect ( results . length ) . toBe ( 0 ) ;
1248+ } ) ;
1249+
1250+ it ( `${ controller . name } can handle containedIn query on array` , async ( ) => {
1251+ const obj1 = new TestObject ( { arrayField : [ 1 , 2 , 3 , 4 ] } ) ;
1252+ const obj2 = new TestObject ( { arrayField : [ 0 , 2 ] } ) ;
1253+ const obj3 = new TestObject ( { arrayField : [ 1 , 2 , 3 ] } ) ;
1254+ await Parse . Object . saveAll ( [ obj1 , obj2 , obj3 ] ) ;
1255+ await Parse . Object . pinAll ( [ obj1 , obj2 , obj3 ] ) ;
1256+
1257+ let query = new Parse . Query ( TestObject ) ;
1258+ query . containedIn ( 'arrayField' , [ 3 ] ) ;
1259+ query . fromPin ( ) ;
1260+ let results = await query . find ( ) ;
1261+ expect ( results . length ) . toEqual ( 2 ) ;
1262+
1263+ query = new Parse . Query ( TestObject ) ;
1264+ query . containedIn ( 'arrayField' , [ 5 ] ) ;
1265+ query . fromPin ( ) ;
1266+ results = await query . find ( ) ;
1267+ expect ( results . length ) . toEqual ( 0 ) ;
1268+ } ) ;
1269+
1270+ it ( `${ controller . name } can handle notContainedIn query on array` , async ( ) => {
1271+ const obj1 = new TestObject ( { arrayField : [ 1 , 2 , 3 , 4 ] } ) ;
1272+ const obj2 = new TestObject ( { arrayField : [ 0 , 2 ] } ) ;
1273+ const obj3 = new TestObject ( { arrayField : [ 1 , 2 , 3 ] } ) ;
1274+ await Parse . Object . saveAll ( [ obj1 , obj2 , obj3 ] ) ;
1275+ await Parse . Object . pinAll ( [ obj1 , obj2 , obj3 ] ) ;
1276+
1277+ let query = new Parse . Query ( TestObject ) ;
1278+ query . notContainedIn ( 'arrayField' , [ 3 ] ) ;
1279+ query . fromPin ( ) ;
1280+ let results = await query . find ( ) ;
1281+ expect ( results . length ) . toEqual ( 1 ) ;
1282+
1283+ query = new Parse . Query ( TestObject ) ;
1284+ query . notContainedIn ( 'arrayField' , [ 5 ] ) ;
1285+ query . fromPin ( ) ;
1286+ results = await query . find ( ) ;
1287+ expect ( results . length ) . toEqual ( 3 ) ;
1288+ } ) ;
1289+
12301290 it ( `${ controller . name } can test equality with undefined` , async ( ) => {
12311291 const query = new Parse . Query ( 'BoxedNumber' ) ;
12321292 query . equalTo ( 'number' , undefined ) ;
0 commit comments