short.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. 'use strict';
  2. var parse = require('../');
  3. var test = require('tape');
  4. test('numeric short args', function (t) {
  5. t.plan(2);
  6. t.deepEqual(parse(['-n123']), { n: 123, _: [] });
  7. t.deepEqual(
  8. parse(['-123', '456']),
  9. { 1: true, 2: true, 3: 456, _: [] }
  10. );
  11. });
  12. test('short', function (t) {
  13. t.deepEqual(
  14. parse(['-b']),
  15. { b: true, _: [] },
  16. 'short boolean'
  17. );
  18. t.deepEqual(
  19. parse(['foo', 'bar', 'baz']),
  20. { _: ['foo', 'bar', 'baz'] },
  21. 'bare'
  22. );
  23. t.deepEqual(
  24. parse(['-cats']),
  25. { c: true, a: true, t: true, s: true, _: [] },
  26. 'group'
  27. );
  28. t.deepEqual(
  29. parse(['-cats', 'meow']),
  30. { c: true, a: true, t: true, s: 'meow', _: [] },
  31. 'short group next'
  32. );
  33. t.deepEqual(
  34. parse(['-h', 'localhost']),
  35. { h: 'localhost', _: [] },
  36. 'short capture'
  37. );
  38. t.deepEqual(
  39. parse(['-h', 'localhost', '-p', '555']),
  40. { h: 'localhost', p: 555, _: [] },
  41. 'short captures'
  42. );
  43. t.end();
  44. });
  45. test('mixed short bool and capture', function (t) {
  46. t.same(
  47. parse(['-h', 'localhost', '-fp', '555', 'script.js']),
  48. {
  49. f: true, p: 555, h: 'localhost',
  50. _: ['script.js'],
  51. }
  52. );
  53. t.end();
  54. });
  55. test('short and long', function (t) {
  56. t.deepEqual(
  57. parse(['-h', 'localhost', '-fp', '555', 'script.js']),
  58. {
  59. f: true, p: 555, h: 'localhost',
  60. _: ['script.js'],
  61. }
  62. );
  63. t.end();
  64. });