time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

unknown.js (2541B)


      1 var parse = require('../');
      2 var test = require('tape');
      3 
      4 test('boolean and alias is not unknown', function (t) {
      5     var unknown = [];
      6     function unknownFn(arg) {
      7         unknown.push(arg);
      8         return false;
      9     }
     10     var aliased = [ '-h', 'true', '--derp', 'true' ];
     11     var regular = [ '--herp',  'true', '-d', 'true' ];
     12     var opts = {
     13         alias: { h: 'herp' },
     14         boolean: 'h',
     15         unknown: unknownFn
     16     };
     17     var aliasedArgv = parse(aliased, opts);
     18     var propertyArgv = parse(regular, opts);
     19 
     20     t.same(unknown, ['--derp', '-d']);
     21     t.end();
     22 });
     23 
     24 test('flag boolean true any double hyphen argument is not unknown', function (t) {
     25     var unknown = [];
     26     function unknownFn(arg) {
     27         unknown.push(arg);
     28         return false;
     29     }
     30     var argv = parse(['--honk', '--tacos=good', 'cow', '-p', '55'], {
     31         boolean: true,
     32         unknown: unknownFn
     33     });
     34     t.same(unknown, ['--tacos=good', 'cow', '-p']);
     35     t.same(argv, {
     36         honk: true,
     37         _: []
     38     });
     39     t.end();
     40 });
     41 
     42 test('string and alias is not unknown', function (t) {
     43     var unknown = [];
     44     function unknownFn(arg) {
     45         unknown.push(arg);
     46         return false;
     47     }
     48     var aliased = [ '-h', 'hello', '--derp', 'goodbye' ];
     49     var regular = [ '--herp',  'hello', '-d', 'moon' ];
     50     var opts = {
     51         alias: { h: 'herp' },
     52         string: 'h',
     53         unknown: unknownFn
     54     };
     55     var aliasedArgv = parse(aliased, opts);
     56     var propertyArgv = parse(regular, opts);
     57 
     58     t.same(unknown, ['--derp', '-d']);
     59     t.end();
     60 });
     61 
     62 test('default and alias is not unknown', function (t) {
     63     var unknown = [];
     64     function unknownFn(arg) {
     65         unknown.push(arg);
     66         return false;
     67     }
     68     var aliased = [ '-h', 'hello' ];
     69     var regular = [ '--herp',  'hello' ];
     70     var opts = {
     71         default: { 'h': 'bar' },
     72         alias: { 'h': 'herp' },
     73         unknown: unknownFn
     74     };
     75     var aliasedArgv = parse(aliased, opts);
     76     var propertyArgv = parse(regular, opts);
     77 
     78     t.same(unknown, []);
     79     t.end();
     80     unknownFn(); // exercise fn for 100% coverage
     81 });
     82 
     83 test('value following -- is not unknown', function (t) {
     84     var unknown = [];
     85     function unknownFn(arg) {
     86         unknown.push(arg);
     87         return false;
     88     }
     89     var aliased = [ '--bad', '--', 'good', 'arg' ];
     90     var opts = {
     91         '--': true,
     92         unknown: unknownFn
     93     };
     94     var argv = parse(aliased, opts);
     95 
     96     t.same(unknown, ['--bad']);
     97     t.same(argv, {
     98         '--': ['good', 'arg'],
     99         '_': []
    100     })
    101     t.end();
    102 });