@@ -3188,6 +3188,103 @@ describe('yargs-parser', function () {
3188
3188
k : '/1/'
3189
3189
} )
3190
3190
} )
3191
+ // Fixes: https://github.com/yargs/yargs-parser/issues/501
3192
+ it . only ( 'should allow an unknown arg that resembles a known arg and contains hyphens to be used as the value of another flag in short form' , function ( ) {
3193
+ {
3194
+ const argv = parser ( '--known-arg /1/ -k --known-arg-unknown' , {
3195
+ string : [ 'k' , 'known-arg' ] ,
3196
+ narg : { k : 1 , 'known-arg' : 1 } ,
3197
+ configuration : {
3198
+ 'unknown-options-as-args' : true
3199
+ }
3200
+ } )
3201
+ argv . should . deep . equal ( {
3202
+ _ : [ ] ,
3203
+ k : '--known-arg-unknown' ,
3204
+ 'knownArg' : '/1/' ,
3205
+ 'known-arg' : '/1/' ,
3206
+ } )
3207
+ }
3208
+
3209
+ {
3210
+ const argv = parser ( '-k --u-u' , {
3211
+ string : [ 'k' , 'u' ] ,
3212
+ narg : { k : 1 , u : 1 } ,
3213
+ configuration : {
3214
+ 'unknown-options-as-args' : true
3215
+ }
3216
+ } )
3217
+ argv . should . deep . equal ( {
3218
+ _ : [ ] ,
3219
+ k : '--u-u'
3220
+ } )
3221
+ }
3222
+ } )
3223
+ // Fixes: https://github.com/yargs/yargs-parser/issues/501
3224
+ it . only ( 'should allow an unknown arg that resembles a known arg and contains hyphens to be used as the value of another flag in long form' , function ( ) {
3225
+ {
3226
+ const argv = parser ( '-k /1/ --known-arg --k-u' , {
3227
+ string : [ 'k' , 'known-arg' ] ,
3228
+ narg : { k : 1 , 'known-arg' : 1 } ,
3229
+ configuration : {
3230
+ 'unknown-options-as-args' : true
3231
+ }
3232
+ } )
3233
+ argv . should . deep . equal ( {
3234
+ _ : [ ] ,
3235
+ k : '/1/' ,
3236
+ 'knownArg' : '--k-u' ,
3237
+ 'known-arg' : '--k-u' ,
3238
+ } )
3239
+ }
3240
+
3241
+ {
3242
+ const argv = parser ( '--known-arg --known-unknown' , {
3243
+ string : [ 'known-arg' , 'known' ] ,
3244
+ narg : { 'known-arg' : 1 , 'known' : 1 } ,
3245
+ configuration : {
3246
+ 'unknown-options-as-args' : true
3247
+ }
3248
+ } )
3249
+ argv . should . deep . equal ( {
3250
+ _ : [ ] ,
3251
+ 'knownArg' : '--known-unknown' ,
3252
+ 'known-arg' : '--known-unknown' ,
3253
+ } )
3254
+ }
3255
+ } )
3256
+ // Fixes: https://github.com/yargs/yargs-parser/issues/501
3257
+ it . only ( 'should allow an unknown arg that resembles a known arg and contains hyphens to be used as the value of another flag in array form' , function ( ) {
3258
+ {
3259
+ const argv = parser ( '--known-arg --known-unknown --known-not-known' , {
3260
+ array : [ 'known-arg' , 'known' ] ,
3261
+ configuration : {
3262
+ 'unknown-options-as-args' : true
3263
+ }
3264
+ } )
3265
+ argv . should . deep . equal ( {
3266
+ _ : [ ] ,
3267
+ knownArg : [ '--known-unknown' , '--known-not-known' ] ,
3268
+ 'known-arg' : [ '--known-unknown' , '--known-not-known' ]
3269
+ } )
3270
+ }
3271
+
3272
+ {
3273
+ const argv = parser ( '--known-arg --k-unknown --k-not-known' , {
3274
+ array : [ 'known-arg' ] ,
3275
+ alias : { 'known-arg' : [ 'k' ] } ,
3276
+ configuration : {
3277
+ 'unknown-options-as-args' : true
3278
+ }
3279
+ } )
3280
+ argv . should . deep . equal ( {
3281
+ _ : [ ] ,
3282
+ knownArg : [ '--k-unknown' , '--k-not-known' ] ,
3283
+ 'known-arg' : [ '--k-unknown' , '--k-not-known' ] ,
3284
+ k : [ '--k-unknown' , '--k-not-known' ]
3285
+ } )
3286
+ }
3287
+ } )
3191
3288
it ( 'should ignore unknown options in short format with multiple flags in one argument where an unknown flag is before the end' , function ( ) {
3192
3289
const argv = parser ( '-kuv' , {
3193
3290
boolean : [ 'k' , 'v' ] ,
0 commit comments