1- import { mergeDefaultsWithFormData } from '../src' ;
1+ import { mergeDefaultsWithFormData , OverrideFormDataStrategy } from '../src' ;
22
33describe ( 'mergeDefaultsWithFormData()' , ( ) => {
44 it ( 'shouldn`t mutate the provided objects' , ( ) => {
@@ -143,11 +143,15 @@ describe('mergeDefaultsWithFormData()', () => {
143143
144144 describe ( 'test with overrideFormDataWithDefaults set to `merge`' , ( ) => {
145145 it ( 'should return data in formData when no defaults' , ( ) => {
146- expect ( mergeDefaultsWithFormData ( undefined , [ 2 ] , undefined , undefined , 'merge' ) ) . toEqual ( [ 2 ] ) ;
146+ expect ( mergeDefaultsWithFormData ( undefined , [ 2 ] , undefined , undefined , OverrideFormDataStrategy . merge ) ) . toEqual ( [
147+ 2 ,
148+ ] ) ;
147149 } ) ;
148150
149151 it ( 'should return formData when formData is undefined' , ( ) => {
150- expect ( mergeDefaultsWithFormData ( { } , undefined , undefined , undefined , 'merge' ) ) . toEqual ( undefined ) ;
152+ expect ( mergeDefaultsWithFormData ( { } , undefined , undefined , undefined , OverrideFormDataStrategy . merge ) ) . toEqual (
153+ undefined ,
154+ ) ;
151155 } ) ;
152156
153157 it ( 'should deeply merge and return formData when formData is undefined and defaultSupercedesUndefined false' , ( ) => {
@@ -170,7 +174,7 @@ describe('mergeDefaultsWithFormData()', () => {
170174 } ,
171175 undefined ,
172176 undefined ,
173- ' merge' ,
177+ OverrideFormDataStrategy . merge ,
174178 ) ,
175179 ) . toEqual ( {
176180 arrayWithDefaults : [ null ] ,
@@ -183,45 +187,64 @@ describe('mergeDefaultsWithFormData()', () => {
183187 } ) ;
184188
185189 it ( 'should return default when formData is undefined and defaultSupercedesUndefined true' , ( ) => {
186- expect ( mergeDefaultsWithFormData ( { } , undefined , undefined , true , ' merge' ) ) . toEqual ( { } ) ;
190+ expect ( mergeDefaultsWithFormData ( { } , undefined , undefined , true , OverrideFormDataStrategy . merge ) ) . toEqual ( { } ) ;
187191 } ) ;
188192
189193 it ( 'should return default when formData is null and defaultSupercedesUndefined true' , ( ) => {
190- expect ( mergeDefaultsWithFormData ( { } , null , undefined , true , ' merge' ) ) . toEqual ( { } ) ;
194+ expect ( mergeDefaultsWithFormData ( { } , null , undefined , true , OverrideFormDataStrategy . merge ) ) . toEqual ( { } ) ;
191195 } ) ;
192196
193197 it ( 'should merge two one-level deep objects' , ( ) => {
194- expect ( mergeDefaultsWithFormData ( { a : 1 } , { b : 2 } , undefined , undefined , 'merge' ) ) . toEqual ( {
198+ expect (
199+ mergeDefaultsWithFormData ( { a : 1 } , { b : 2 } , undefined , undefined , OverrideFormDataStrategy . merge ) ,
200+ ) . toEqual ( {
195201 a : 1 ,
196202 b : 2 ,
197203 } ) ;
198204 } ) ;
199205
200206 it ( 'should override the first object with the values from the second' , ( ) => {
201- expect ( mergeDefaultsWithFormData ( { a : 1 } , { a : 2 } , undefined , undefined , 'merge' ) ) . toEqual ( { a : 1 } ) ;
207+ expect (
208+ mergeDefaultsWithFormData ( { a : 1 } , { a : 2 } , undefined , undefined , OverrideFormDataStrategy . merge ) ,
209+ ) . toEqual ( { a : 1 } ) ;
202210 } ) ;
203211
204212 it ( 'should override non-existing values of the first object with the values from the second' , ( ) => {
205213 expect (
206- mergeDefaultsWithFormData ( { a : { b : undefined } } , { a : { b : { c : 1 } } } , undefined , undefined , 'merge' ) ,
214+ mergeDefaultsWithFormData (
215+ { a : { b : undefined } } ,
216+ { a : { b : { c : 1 } } } ,
217+ undefined ,
218+ undefined ,
219+ OverrideFormDataStrategy . merge ,
220+ ) ,
207221 ) . toEqual ( {
208222 a : { b : { c : 1 } } ,
209223 } ) ;
210224 } ) ;
211225
212226 it ( 'should merge arrays using entries from second' , ( ) => {
213- expect ( mergeDefaultsWithFormData ( [ 1 , 2 , 3 ] , [ 4 , 5 ] , undefined , undefined , 'merge' ) ) . toEqual ( [ 1 , 2 , 3 ] ) ;
227+ expect (
228+ mergeDefaultsWithFormData ( [ 1 , 2 , 3 ] , [ 4 , 5 ] , undefined , undefined , OverrideFormDataStrategy . merge ) ,
229+ ) . toEqual ( [ 1 , 2 , 3 ] ) ;
214230 } ) ;
215231
216232 it ( 'should merge arrays using entries from second and extra from the first' , ( ) => {
217- expect ( mergeDefaultsWithFormData ( [ 1 , 2 ] , [ 4 , 5 , 6 ] , undefined , undefined , 'merge' ) ) . toEqual ( [ 1 , 2 , 6 ] ) ;
233+ expect (
234+ mergeDefaultsWithFormData ( [ 1 , 2 ] , [ 4 , 5 , 6 ] , undefined , undefined , OverrideFormDataStrategy . merge ) ,
235+ ) . toEqual ( [ 1 , 2 , 6 ] ) ;
218236 } ) ;
219237
220238 it ( 'should deeply merge arrays with overlapping entries' , ( ) => {
221- expect ( mergeDefaultsWithFormData ( [ { a : 1 } ] , [ { b : 2 } , { c : 3 } ] , undefined , undefined , 'merge' ) ) . toEqual ( [
222- { a : 1 , b : 2 } ,
223- { c : 3 } ,
224- ] ) ;
239+ expect (
240+ mergeDefaultsWithFormData (
241+ [ { a : 1 } ] ,
242+ [ { b : 2 } , { c : 3 } ] ,
243+ undefined ,
244+ undefined ,
245+ OverrideFormDataStrategy . merge ,
246+ ) ,
247+ ) . toEqual ( [ { a : 1 , b : 2 } , { c : 3 } ] ) ;
225248 } ) ;
226249
227250 it ( 'should recursively merge deeply nested objects' , ( ) => {
@@ -256,7 +279,9 @@ describe('mergeDefaultsWithFormData()', () => {
256279 } ,
257280 c : 2 ,
258281 } ;
259- expect ( mergeDefaultsWithFormData < any > ( obj1 , obj2 , undefined , undefined , 'merge' ) ) . toEqual ( expected ) ;
282+ expect ( mergeDefaultsWithFormData < any > ( obj1 , obj2 , undefined , undefined , OverrideFormDataStrategy . merge ) ) . toEqual (
283+ expected ,
284+ ) ;
260285 } ) ;
261286
262287 it ( 'should recursively merge deeply nested objects, including extra array data' , ( ) => {
@@ -293,7 +318,9 @@ describe('mergeDefaultsWithFormData()', () => {
293318 c : 2 ,
294319 d : 4 ,
295320 } ;
296- expect ( mergeDefaultsWithFormData < any > ( obj1 , obj2 , undefined , undefined , 'merge' ) ) . toEqual ( expected ) ;
321+ expect ( mergeDefaultsWithFormData < any > ( obj1 , obj2 , undefined , undefined , OverrideFormDataStrategy . merge ) ) . toEqual (
322+ expected ,
323+ ) ;
297324 } ) ;
298325
299326 it ( 'should recursively merge File objects' , ( ) => {
@@ -310,47 +337,69 @@ describe('mergeDefaultsWithFormData()', () => {
310337
311338 describe ( 'test with overrideFormDataWithDefaults set to `replace`' , ( ) => {
312339 it ( 'should return empty array even when no defaults' , ( ) => {
313- expect ( mergeDefaultsWithFormData ( undefined , [ 2 ] , undefined , undefined , 'replace' ) ) . toEqual ( [ ] ) ;
340+ expect ( mergeDefaultsWithFormData ( undefined , [ 2 ] , undefined , undefined , OverrideFormDataStrategy . replace ) ) . toEqual (
341+ [ ] ,
342+ ) ;
314343 } ) ;
315344
316345 it ( 'should return default when formData is undefined' , ( ) => {
317- expect ( mergeDefaultsWithFormData ( { } , undefined , undefined , undefined , 'replace' ) ) . toEqual ( { } ) ;
346+ expect ( mergeDefaultsWithFormData ( { } , undefined , undefined , undefined , OverrideFormDataStrategy . replace ) ) . toEqual (
347+ { } ,
348+ ) ;
318349 } ) ;
319350
320351 it ( 'should return default when formData is undefined and defaultSupercedesUndefined true' , ( ) => {
321- expect ( mergeDefaultsWithFormData ( { } , undefined , undefined , true , ' replace' ) ) . toEqual ( { } ) ;
352+ expect ( mergeDefaultsWithFormData ( { } , undefined , undefined , true , OverrideFormDataStrategy . replace ) ) . toEqual ( { } ) ;
322353 } ) ;
323354
324355 it ( 'should return default when formData is null and defaultSupercedesUndefined true' , ( ) => {
325- expect ( mergeDefaultsWithFormData ( { } , null , undefined , true , ' replace' ) ) . toEqual ( { } ) ;
356+ expect ( mergeDefaultsWithFormData ( { } , null , undefined , true , OverrideFormDataStrategy . replace ) ) . toEqual ( { } ) ;
326357 } ) ;
327358
328359 it ( 'should not merge two one-level deep objects' , ( ) => {
329- expect ( mergeDefaultsWithFormData ( { a : 1 } , { b : 2 } , undefined , undefined , 'replace' ) ) . toEqual ( {
360+ expect (
361+ mergeDefaultsWithFormData ( { a : 1 } , { b : 2 } , undefined , undefined , OverrideFormDataStrategy . replace ) ,
362+ ) . toEqual ( {
330363 a : 1 ,
331364 } ) ;
332365 } ) ;
333366
334367 it ( 'should not override the first object with the values from the second' , ( ) => {
335- expect ( mergeDefaultsWithFormData ( { a : 1 } , { a : 2 } , undefined , undefined , 'replace' ) ) . toEqual ( { a : 1 } ) ;
368+ expect (
369+ mergeDefaultsWithFormData ( { a : 1 } , { a : 2 } , undefined , undefined , OverrideFormDataStrategy . replace ) ,
370+ ) . toEqual ( { a : 1 } ) ;
336371 } ) ;
337372
338373 it ( 'should not return undefined from defaults' , ( ) => {
339374 expect (
340- mergeDefaultsWithFormData ( { a : { b : undefined } } , { a : { b : { c : 1 } } } , undefined , undefined , 'replace' ) ,
375+ mergeDefaultsWithFormData (
376+ { a : { b : undefined } } ,
377+ { a : { b : { c : 1 } } } ,
378+ undefined ,
379+ undefined ,
380+ OverrideFormDataStrategy . replace ,
381+ ) ,
341382 ) . toEqual ( {
342383 a : { b : { } } ,
343384 } ) ;
344385 } ) ;
345386
346387 it ( 'should not merge arrays using entries from second' , ( ) => {
347- expect ( mergeDefaultsWithFormData ( [ 1 , 2 , 3 ] , [ 4 , 5 ] , undefined , undefined , 'replace' ) ) . toEqual ( [ 1 , 2 , 3 ] ) ;
388+ expect (
389+ mergeDefaultsWithFormData ( [ 1 , 2 , 3 ] , [ 4 , 5 ] , undefined , undefined , OverrideFormDataStrategy . replace ) ,
390+ ) . toEqual ( [ 1 , 2 , 3 ] ) ;
348391 } ) ;
349392
350393 it ( 'should not deeply merge arrays with overlapping entries' , ( ) => {
351- expect ( mergeDefaultsWithFormData ( [ { a : 1 } ] , [ { b : 2 } , { c : 3 } ] , undefined , undefined , 'replace' ) ) . toEqual ( [
352- { a : 1 } ,
353- ] ) ;
394+ expect (
395+ mergeDefaultsWithFormData (
396+ [ { a : 1 } ] ,
397+ [ { b : 2 } , { c : 3 } ] ,
398+ undefined ,
399+ undefined ,
400+ OverrideFormDataStrategy . replace ,
401+ ) ,
402+ ) . toEqual ( [ { a : 1 } ] ) ;
354403 } ) ;
355404
356405 it ( 'should replace objects' , ( ) => {
@@ -375,7 +424,9 @@ describe('mergeDefaultsWithFormData()', () => {
375424 c : 3 ,
376425 d : 4 ,
377426 } ;
378- expect ( mergeDefaultsWithFormData < any > ( obj1 , obj2 , undefined , undefined , 'replace' ) ) . toEqual ( {
427+ expect (
428+ mergeDefaultsWithFormData < any > ( obj1 , obj2 , undefined , undefined , OverrideFormDataStrategy . replace ) ,
429+ ) . toEqual ( {
379430 a : 1 ,
380431 b : {
381432 c : 3 ,
@@ -388,11 +439,21 @@ describe('mergeDefaultsWithFormData()', () => {
388439 } ) ;
389440
390441 it ( 'should replace arrays' , ( ) => {
391- expect ( mergeDefaultsWithFormData ( [ 1 , 2 ] , [ 4 , 5 , 6 ] , undefined , undefined , 'replace' ) ) . toEqual ( [ 1 , 2 ] ) ;
442+ expect (
443+ mergeDefaultsWithFormData ( [ 1 , 2 ] , [ 4 , 5 , 6 ] , undefined , undefined , OverrideFormDataStrategy . replace ) ,
444+ ) . toEqual ( [ 1 , 2 ] ) ;
392445 } ) ;
393446
394447 it ( 'should replace objects' , ( ) => {
395- expect ( mergeDefaultsWithFormData ( { a : { b : 1 } } , { a : { b : 2 } } , undefined , undefined , 'replace' ) ) . toEqual ( {
448+ expect (
449+ mergeDefaultsWithFormData (
450+ { a : { b : 1 } } ,
451+ { a : { b : 2 } } ,
452+ undefined ,
453+ undefined ,
454+ OverrideFormDataStrategy . replace ,
455+ ) ,
456+ ) . toEqual ( {
396457 a : { b : 1 } ,
397458 } ) ;
398459 } ) ;
0 commit comments