You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							102 lines
						
					
					
						
							2.5 KiB
						
					
					
				
			
		
		
	
	
							102 lines
						
					
					
						
							2.5 KiB
						
					
					
				var parse = require('../'); | 
						|
var test = require('tape'); | 
						|
 | 
						|
test('boolean and alias is not unknown', function (t) { | 
						|
    var unknown = []; | 
						|
    function unknownFn(arg) { | 
						|
        unknown.push(arg); | 
						|
        return false; | 
						|
    } | 
						|
    var aliased = [ '-h', 'true', '--derp', 'true' ]; | 
						|
    var regular = [ '--herp',  'true', '-d', 'true' ]; | 
						|
    var opts = { | 
						|
        alias: { h: 'herp' }, | 
						|
        boolean: 'h', | 
						|
        unknown: unknownFn | 
						|
    }; | 
						|
    var aliasedArgv = parse(aliased, opts); | 
						|
    var propertyArgv = parse(regular, opts); | 
						|
 | 
						|
    t.same(unknown, ['--derp', '-d']); | 
						|
    t.end(); | 
						|
}); | 
						|
 | 
						|
test('flag boolean true any double hyphen argument is not unknown', function (t) { | 
						|
    var unknown = []; | 
						|
    function unknownFn(arg) { | 
						|
        unknown.push(arg); | 
						|
        return false; | 
						|
    } | 
						|
    var argv = parse(['--honk', '--tacos=good', 'cow', '-p', '55'], { | 
						|
        boolean: true, | 
						|
        unknown: unknownFn | 
						|
    }); | 
						|
    t.same(unknown, ['--tacos=good', 'cow', '-p']); | 
						|
    t.same(argv, { | 
						|
        honk: true, | 
						|
        _: [] | 
						|
    }); | 
						|
    t.end(); | 
						|
}); | 
						|
 | 
						|
test('string and alias is not unknown', function (t) { | 
						|
    var unknown = []; | 
						|
    function unknownFn(arg) { | 
						|
        unknown.push(arg); | 
						|
        return false; | 
						|
    } | 
						|
    var aliased = [ '-h', 'hello', '--derp', 'goodbye' ]; | 
						|
    var regular = [ '--herp',  'hello', '-d', 'moon' ]; | 
						|
    var opts = { | 
						|
        alias: { h: 'herp' }, | 
						|
        string: 'h', | 
						|
        unknown: unknownFn | 
						|
    }; | 
						|
    var aliasedArgv = parse(aliased, opts); | 
						|
    var propertyArgv = parse(regular, opts); | 
						|
 | 
						|
    t.same(unknown, ['--derp', '-d']); | 
						|
    t.end(); | 
						|
}); | 
						|
 | 
						|
test('default and alias is not unknown', function (t) { | 
						|
    var unknown = []; | 
						|
    function unknownFn(arg) { | 
						|
        unknown.push(arg); | 
						|
        return false; | 
						|
    } | 
						|
    var aliased = [ '-h', 'hello' ]; | 
						|
    var regular = [ '--herp',  'hello' ]; | 
						|
    var opts = { | 
						|
        default: { 'h': 'bar' }, | 
						|
        alias: { 'h': 'herp' }, | 
						|
        unknown: unknownFn | 
						|
    }; | 
						|
    var aliasedArgv = parse(aliased, opts); | 
						|
    var propertyArgv = parse(regular, opts); | 
						|
 | 
						|
    t.same(unknown, []); | 
						|
    t.end(); | 
						|
    unknownFn(); // exercise fn for 100% coverage | 
						|
}); | 
						|
 | 
						|
test('value following -- is not unknown', function (t) { | 
						|
    var unknown = []; | 
						|
    function unknownFn(arg) { | 
						|
        unknown.push(arg); | 
						|
        return false; | 
						|
    } | 
						|
    var aliased = [ '--bad', '--', 'good', 'arg' ]; | 
						|
    var opts = { | 
						|
        '--': true, | 
						|
        unknown: unknownFn | 
						|
    }; | 
						|
    var argv = parse(aliased, opts); | 
						|
 | 
						|
    t.same(unknown, ['--bad']); | 
						|
    t.same(argv, { | 
						|
        '--': ['good', 'arg'], | 
						|
        '_': [] | 
						|
    }) | 
						|
    t.end(); | 
						|
});
 | 
						|
 |