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.
		
		
		
		
		
			
		
			
				
					
					
						
							103 lines
						
					
					
						
							2.5 KiB
						
					
					
				
			
		
		
	
	
							103 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();
 | |
| });
 |