matching.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. var nomnom = require("../nomnom");
  2. var opts = {
  3. pos1: {
  4. position: 0
  5. },
  6. pos2: {
  7. position: 1
  8. },
  9. flag1: {
  10. flag: true
  11. },
  12. debug: {
  13. abbr: 'd'
  14. },
  15. numLines: {
  16. abbr: 'n',
  17. full: 'num-lines'
  18. },
  19. version: {
  20. string: '-v, --version'
  21. },
  22. config: {
  23. string: '-c FILE, --config=FILE'
  24. },
  25. skey : {
  26. string: '-k val'
  27. },
  28. skey2: {
  29. string: '-k2 val2, --key2 val2'
  30. },
  31. skey3: {
  32. string: '--key3=val'
  33. },
  34. skey4: {
  35. string: '--key4=val, -y val'
  36. }
  37. }
  38. var parser = nomnom().options(opts);
  39. exports.testPositional = function(test) {
  40. var options = parser.parse(["--flag1", "val1", "--config", "file", "val2"]);
  41. test.equal(options.pos1, "val1");
  42. test.equal(options.pos2, "val2");
  43. test.deepEqual(options._, ["val1", "val2"])
  44. test.done();
  45. }
  46. exports.testAbbr = function(test) {
  47. var options = parser.parse(["-d", "yes", "--num-lines", "3"]);
  48. test.equal(options.debug, "yes")
  49. test.equal(options.numLines, 3)
  50. test.done();
  51. }
  52. exports.testString = function(test) {
  53. var options = parser.parse(["-k", "val", "--config=test.js",
  54. "--key2", "val2", "--key3", "val3", "--key4=val4", "-v", "v0.3"]);
  55. test.equal(options.version, "v0.3")
  56. test.equal(options.config, "test.js")
  57. test.equal(options.skey, "val")
  58. test.equal(options.skey2, "val2")
  59. test.equal(options.skey3, "val3")
  60. test.equal(options.skey4, "val4")
  61. test.done();
  62. }