@@ -71,7 +71,100 @@ describe('mapper.js', () => {
7171 f9 : true ,
7272 } ) ;
7373 } ) ;
74-
74+ it ( 'should transform default if present in call' , async ( ) => {
75+ const mappings = mapper ( {
76+ defaults : { f9 : true } ,
77+ omit : [ ...DEFAULT_OMIT_FIELDS , 'f1' ] ,
78+ rename : {
79+ pk : 'id' ,
80+ data : 'name' ,
81+ f1 : 'f2' ,
82+ x1 : 'else-coverage' ,
83+ } ,
84+ transform : {
85+ f1 : async ( v ) => v . toUpperCase ( ) ,
86+ f3 : ( v ) => v . toUpperCase ( ) ,
87+ f9 : ( v ) => 'else-coverage' ,
88+ } ,
89+ } ) ;
90+ const mapData = await mappings ( {
91+ pk : '1' ,
92+ sk : 'thing' ,
93+ data : 'thing0' ,
94+ f3 : 'test' ,
95+ f1 : 'v1' ,
96+ f9 : true ,
97+ } ) ;
98+ expect ( mapData ) . to . deep . equal ( {
99+ id : '1' ,
100+ name : 'thing0' ,
101+ f2 : 'V1' ,
102+ f3 : 'TEST' ,
103+ f9 : 'else-coverage' ,
104+ } ) ;
105+ } ) ;
106+ it ( 'should transform if not present in defaults' , async ( ) => {
107+ const mappings = mapper ( {
108+ omit : [ ...DEFAULT_OMIT_FIELDS , 'f1' ] ,
109+ rename : {
110+ pk : 'id' ,
111+ data : 'name' ,
112+ f1 : 'f2' ,
113+ x1 : 'else-coverage' ,
114+ } ,
115+ transform : {
116+ f1 : async ( v ) => v . toUpperCase ( ) ,
117+ f3 : ( v ) => v . toUpperCase ( ) ,
118+ f9 : ( v ) => 'will-transform' ,
119+ } ,
120+ } ) ;
121+ const mapData = await mappings ( {
122+ pk : '1' ,
123+ sk : 'thing' ,
124+ data : 'thing0' ,
125+ f3 : 'test' ,
126+ f1 : 'v1' ,
127+ f9 : true ,
128+ } ) ;
129+ expect ( mapData ) . to . deep . equal ( {
130+ id : '1' ,
131+ name : 'thing0' ,
132+ f2 : 'V1' ,
133+ f3 : 'TEST' ,
134+ f9 : 'will-transform' ,
135+ } ) ;
136+ } ) ;
137+ it ( 'should not transform default values' , async ( ) => {
138+ const mappings = mapper ( {
139+ defaults : { f9 : true } ,
140+ omit : [ ...DEFAULT_OMIT_FIELDS , 'f1' ] ,
141+ rename : {
142+ pk : 'id' ,
143+ data : 'name' ,
144+ f1 : 'f2' ,
145+ x1 : 'else-coverage' ,
146+ } ,
147+ transform : {
148+ f1 : async ( v ) => v . toUpperCase ( ) ,
149+ f3 : ( v ) => v . toUpperCase ( ) ,
150+ f9 : ( v ) => 'will-transform' ,
151+ } ,
152+ } ) ;
153+ const mapData = await mappings ( {
154+ pk : '1' ,
155+ sk : 'thing' ,
156+ data : 'thing0' ,
157+ f3 : 'test' ,
158+ f1 : 'v1' ,
159+ } ) ;
160+ expect ( mapData ) . to . deep . equal ( {
161+ id : '1' ,
162+ name : 'thing0' ,
163+ f2 : 'V1' ,
164+ f3 : 'TEST' ,
165+ f9 : true ,
166+ } ) ;
167+ } ) ;
75168 it ( 'should map an aggregate object' , async ( ) => {
76169 const mapper1 = mapper ( {
77170 rename : {
0 commit comments