@@ -28,7 +28,13 @@ DefaultTable.entities = new Entity({
2828 list_alias2 : { type : 'list' , map : 'list2' } ,
2929 test : 'map' ,
3030 linked1 : [ 'sk' , 0 , { save : false } ] ,
31- linked2 : [ 'sk' , 1 , { save : false } ]
31+ linked2 : [ 'sk' , 1 , { save : false } ] ,
32+ composite1 : { type : 'string' , alias : 'composite1_alias' } ,
33+ linked3 : [ 'composite1' , 0 , { save : false } ] ,
34+ linked4 : [ 'composite1' , 1 , { save : false , alias : 'linked4_alias' } ] ,
35+ composite2_alias : { type : 'string' , map : 'composite2' } ,
36+ linked5 : [ 'composite2_alias' , 0 , { save : false , } ] ,
37+ linked6 : [ 'composite2_alias' , 1 , { save : false , alias : 'linked6_alias' } ] ,
3238 }
3339} )
3440
@@ -83,4 +89,19 @@ describe('formatItem', () => {
8389 expect ( result ) . toEqual ( { linked1 : 'test1' } )
8490 } )
8591
92+ it ( 'formats item with linked aliased composite field' , ( ) => {
93+ let result = formatItem ( DocumentClient ) ( DefaultTable . User . schema . attributes , DefaultTable . User . linked , { composite1 : 'test1#test2' } )
94+ expect ( result ) . toEqual ( { composite1_alias : 'test1#test2' , linked3 : 'test1' , linked4_alias : 'test2' } )
95+ } )
96+
97+ it ( 'formats item with linked mapped composite field' , ( ) => {
98+ let result = formatItem ( DocumentClient ) ( DefaultTable . User . schema . attributes , DefaultTable . User . linked , { composite2 : 'test1#test2' } )
99+ expect ( result ) . toEqual ( { composite2_alias : 'test1#test2' , linked5 : 'test1' , linked6_alias : 'test2' } )
100+ } )
101+
102+ it ( 'passes through attribute not specified in entity' , ( ) => {
103+ let result = formatItem ( DocumentClient ) ( DefaultTable . User . schema . attributes , DefaultTable . User . linked , { unspecified : 'value' } )
104+ expect ( result ) . toEqual ( { unspecified : 'value' } )
105+ } )
106+
86107} )
0 commit comments