@@ -1661,3 +1661,60 @@ test('original various tests', function (t) {
16611661
16621662 t . end ( ) ;
16631663} ) ;
1664+
1665+ test ( 'map array inside array to property' , function ( t ) {
1666+
1667+ var obj = {
1668+ "orders" : [ {
1669+ "foodie" : {
1670+ "first_name" : "Foodie2" ,
1671+ "last_name" : "Foodie2"
1672+ } ,
1673+ "sort_code" : "A02"
1674+ } ] ,
1675+ "transfers" : [ {
1676+ "type" : "GIVE" ,
1677+ "target_route" : {
1678+ "_id" : "58e4a15607689eafed8e2841" ,
1679+ "driver" : "58e4a15607689eafed8e2831"
1680+ } ,
1681+ "orders" : [ "58e4a15807689eafed8e2d0b" ]
1682+ } ]
1683+ } ;
1684+
1685+ var expect = {
1686+ "orders" : [ {
1687+ "foodie" : {
1688+ "first_name" : "Foodie2" ,
1689+ "last_name" : "Foodie2"
1690+ } ,
1691+ "sort_code" : "A02"
1692+ } ] ,
1693+ "transfers" : [ {
1694+ "type" : "GIVE" ,
1695+ "target_route" : {
1696+ "_id" : "58e4a15607689eafed8e2841" ,
1697+ "driver" : "58e4a15607689eafed8e2831"
1698+ } ,
1699+ "orders" : [ "58e4a15807689eafed8e2d0b" ]
1700+ } ]
1701+ } ;
1702+
1703+ // would expect this to just assign the array as a property
1704+ var map = {
1705+ 'orders[]._id' : 'orders[]._id' ,
1706+ 'orders[].sort_code' : 'orders[].sort_code' ,
1707+ 'orders[].foodie._id' : 'orders[].foodie._id' ,
1708+ 'orders[].foodie.first_name' : 'orders[].foodie.first_name' ,
1709+ 'orders[].foodie.last_name' : 'orders[].foodie.last_name' ,
1710+ 'transfers[].type' : 'transfers[].type' ,
1711+ 'transfers[].orders[]' : 'transfers[].orders' ,
1712+ 'transfers[].target_route._id' : 'transfers[].target_route._id' ,
1713+ 'transfers[].target_route.driver' : 'transfers[].target_route.driver'
1714+ } ;
1715+
1716+ var result = om ( obj , map ) ;
1717+
1718+ t . deepEqual ( result , expect ) ;
1719+ t . end ( ) ;
1720+ } ) ;
0 commit comments