@@ -300,5 +300,34 @@ describe('Parse Values - parseFieldValue', () => {
300
300
it ( 'Boolean array field, rejects array where value is missing (two delimiters are adjacent)' ) ;
301
301
expect ( parseFieldValue ( ',true,false,TRUE' , fieldBooleanArrayRequired ) . success ) . false ;
302
302
} ) ;
303
+ describe ( 'Custom delimiter' , ( ) => {
304
+ it ( 'Uses a `,` as the delimiter when none is defined' , ( ) => {
305
+ const result = parseFieldValue ( ':,_,|,/' , fieldStringArrayRequired ) ;
306
+ expect ( result . success ) . true ;
307
+ expect ( result . data ) . deep . equal ( [ ':' , '_' , '|' , '/' ] ) ;
308
+ } ) ;
309
+ it ( 'Splits array on the delimiter when defined' , ( ) => {
310
+ const customDelimiterField = { ...fieldStringArrayRequired , delimiter : '|' } ;
311
+ const result = parseFieldValue ( ':,_,|,/' , customDelimiterField ) ;
312
+ expect ( result . success ) . true ;
313
+ expect ( result . data ) . deep . equal ( [ ':,_,' , ',/' ] ) ;
314
+
315
+ const result2 = parseFieldValue ( 'abc|def|ghi' , customDelimiterField ) ;
316
+ expect ( result2 . success ) . true ;
317
+ expect ( result2 . data ) . deep . equal ( [ 'abc' , 'def' , 'ghi' ] ) ;
318
+ } ) ;
319
+ it ( 'Splits arrays with delimiters with more than 1 character' , ( ) => {
320
+ const customDelimiterField = { ...fieldStringArrayRequired , delimiter : '-/-' } ;
321
+ const result = parseFieldValue ( 'a-/-b-/-c-/-d' , customDelimiterField ) ;
322
+ expect ( result . success ) . true ;
323
+ expect ( result . data ) . deep . equal ( [ 'a' , 'b' , 'c' , 'd' ] ) ;
324
+ } ) ;
325
+ it ( 'Splits arrays with delimiters that are entirely whitespace' , ( ) => {
326
+ const customDelimiterField = { ...fieldStringArrayRequired , delimiter : ' ' } ;
327
+ const result = parseFieldValue ( 'a b c d' , customDelimiterField ) ;
328
+ expect ( result . success ) . true ;
329
+ expect ( result . data ) . deep . equal ( [ 'a' , 'b' , 'c' , 'd' ] ) ;
330
+ } ) ;
331
+ } ) ;
303
332
} ) ;
304
333
} ) ;
0 commit comments