@@ -51,6 +51,13 @@ const basicOptions = [
5151 } ,
5252 description : 'custom type flag' ,
5353 } ,
54+ {
55+ name : 'multi-flag' ,
56+ usage : '--multi-flag <value>' ,
57+ type : String ,
58+ multiple : true ,
59+ description : 'multi flag' ,
60+ } ,
5461] ;
5562
5663const helpAndVersionOptions = basicOptions . slice ( 0 ) ;
@@ -163,6 +170,16 @@ describe('arg-parser', () => {
163170 expect ( warnMock . mock . calls . length ) . toEqual ( 0 ) ;
164171 } ) ;
165172
173+ it ( 'handles multiple same args' , ( ) => {
174+ const res = argParser ( basicOptions , [ '--multi-flag' , 'a.js' , '--multi-flag' , 'b.js' ] , true ) ;
175+ expect ( res . unknownArgs . length ) . toEqual ( 0 ) ;
176+ expect ( res . opts ) . toEqual ( {
177+ multiFlag : [ 'a.js' , 'b.js' ] ,
178+ stringFlagWithDefault : 'default-value' ,
179+ } ) ;
180+ expect ( warnMock . mock . calls . length ) . toEqual ( 0 ) ;
181+ } ) ;
182+
166183 it ( 'handles additional node args from argv' , ( ) => {
167184 const res = argParser ( basicOptions , [ 'node' , 'index.js' , '--bool-flag' , '--string-flag' , 'val' ] , false ) ;
168185 expect ( res . unknownArgs . length ) . toEqual ( 0 ) ;
@@ -210,7 +227,7 @@ describe('arg-parser', () => {
210227 it ( 'parses webpack args' , ( ) => {
211228 const res = argParser ( core , [ '--entry' , 'test.js' , '--hot' , '-o' , './dist/' ] , true ) ;
212229 expect ( res . unknownArgs . length ) . toEqual ( 0 ) ;
213- expect ( res . opts . entry ) . toEqual ( 'test.js' ) ;
230+ expect ( res . opts . entry ) . toEqual ( [ 'test.js' ] ) ;
214231 expect ( res . opts . hot ) . toBeTruthy ( ) ;
215232 expect ( res . opts . output ) . toEqual ( './dist/' ) ;
216233 expect ( warnMock . mock . calls . length ) . toEqual ( 0 ) ;
0 commit comments