@@ -9,17 +9,32 @@ describe 'Option `delimiter`', ->
99 (->
1010 parse ' ' , delimiter : ' ' , (-> )
1111 ).should .throw
12- message : ' Invalid option delimiter: delimiter must be a non empty string or buffer, got ""'
12+ message : ' Invalid option delimiter: delimiter must be a non empty string or buffer or array of string|buffer , got ""'
1313 code : ' CSV_INVALID_OPTION_DELIMITER'
1414 (->
1515 parse ' ' , delimiter : Buffer .from (' ' ), (-> )
1616 ).should .throw
17- message : ' Invalid option delimiter: delimiter must be a non empty string or buffer, got {"type":"Buffer","data":[]}'
17+ message : ' Invalid option delimiter: delimiter must be a non empty string or buffer or array of string|buffer , got {"type":"Buffer","data":[]}'
1818 code : ' CSV_INVALID_OPTION_DELIMITER'
1919 (->
2020 parse ' ' , delimiter : true , (-> )
2121 ).should .throw
22- message : ' Invalid option delimiter: delimiter must be a non empty string or buffer, got true'
22+ message : ' Invalid option delimiter: delimiter must be a non empty string or buffer or array of string|buffer, got true'
23+ code : ' CSV_INVALID_OPTION_DELIMITER'
24+ (->
25+ parse ' ' , delimiter : [], (-> )
26+ ).should .throw
27+ message : ' Invalid option delimiter: delimiter must be a non empty string or buffer or array of string|buffer, got []'
28+ code : ' CSV_INVALID_OPTION_DELIMITER'
29+ (->
30+ parse ' ' , delimiter : [' ' ], (-> )
31+ ).should .throw
32+ message : ' Invalid option delimiter: delimiter must be a non empty string or buffer or array of string|buffer, got [""]'
33+ code : ' CSV_INVALID_OPTION_DELIMITER'
34+ (->
35+ parse ' ' , delimiter : [' ,' ,' ' ], (-> )
36+ ).should .throw
37+ message : ' Invalid option delimiter: delimiter must be a non empty string or buffer or array of string|buffer, got [",",""]'
2338 code : ' CSV_INVALID_OPTION_DELIMITER'
2439
2540 it ' using default comma' , (next ) ->
@@ -69,3 +84,39 @@ describe 'Option `delimiter`', ->
6984 [ ' ' ,' 1974' ,' 8.8392926E7' ,' ' ,' ' ]
7085 ]
7186 next ()
87+
88+ it ' using array of a single delimiter' , (next ) ->
89+ parse """
90+ abc,,123,
91+ ,def,,
92+ """ , delimiter : [' ,' ], (err , data ) ->
93+ return next err if err
94+ data .should .eql [
95+ [ ' abc' ,' ' ,' 123' ,' ' ]
96+ [ ' ' ,' def' ,' ' ,' ' ]
97+ ]
98+ next ()
99+
100+ it ' using array of a single delimiter of multiple characters' , (next ) ->
101+ parse """
102+ !#
103+ !#
104+ """ , delimiter : [' !#' ], (err , data ) ->
105+ return next err if err
106+ data .should .eql [
107+ [ ' ' , ' ' ]
108+ [ ' ' , ' ' ]
109+ ]
110+ next ()
111+
112+ it ' using array of a multiple delimiters of variable length' , (next ) ->
113+ parse """
114+ abc,;;123;;
115+ ;;def;;,
116+ """ , delimiter : [' ,' , ' ;;' ], (err , data ) ->
117+ return next err if err
118+ data .should .eql [
119+ [ ' abc' ,' ' ,' 123' ,' ' ]
120+ [ ' ' ,' def' ,' ' ,' ' ]
121+ ]
122+ next ()
0 commit comments