typo.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. var test = require('tap').test
  2. var normalize = require('../')
  3. var typos = require('../lib/typos.json')
  4. var warningMessages = require("../lib/warning_messages.json")
  5. var safeFormat = require("../lib/safe_format")
  6. test('typos', function(t) {
  7. var warnings = []
  8. function warn(m) {
  9. warnings.push(m)
  10. }
  11. var typoMessage = safeFormat.bind(undefined, warningMessages.typo)
  12. var expect =
  13. [ warningMessages.missingRepository,
  14. warningMessages.missingLicense,
  15. typoMessage('dependancies', 'dependencies'),
  16. typoMessage('dependecies', 'dependencies'),
  17. typoMessage('depdenencies', 'dependencies'),
  18. typoMessage('devEependencies', 'devDependencies'),
  19. typoMessage('depends', 'dependencies'),
  20. typoMessage('dev-dependencies', 'devDependencies'),
  21. typoMessage('devDependences', 'devDependencies'),
  22. typoMessage('devDepenencies', 'devDependencies'),
  23. typoMessage('devdependencies', 'devDependencies'),
  24. typoMessage('repostitory', 'repository'),
  25. typoMessage('repo', 'repository'),
  26. typoMessage('prefereGlobal', 'preferGlobal'),
  27. typoMessage('hompage', 'homepage'),
  28. typoMessage('hampage', 'homepage'),
  29. typoMessage('autohr', 'author'),
  30. typoMessage('autor', 'author'),
  31. typoMessage('contributers', 'contributors'),
  32. typoMessage('publicationConfig', 'publishConfig') ]
  33. normalize({"dependancies": "dependencies"
  34. ,"dependecies": "dependencies"
  35. ,"depdenencies": "dependencies"
  36. ,"devEependencies": "devDependencies"
  37. ,"depends": "dependencies"
  38. ,"dev-dependencies": "devDependencies"
  39. ,"devDependences": "devDependencies"
  40. ,"devDepenencies": "devDependencies"
  41. ,"devdependencies": "devDependencies"
  42. ,"repostitory": "repository"
  43. ,"repo": "repository"
  44. ,"prefereGlobal": "preferGlobal"
  45. ,"hompage": "homepage"
  46. ,"hampage": "homepage"
  47. ,"autohr": "author"
  48. ,"autor": "author"
  49. ,"contributers": "contributors"
  50. ,"publicationConfig": "publishConfig"
  51. ,readme:"asdf"
  52. ,name:"name"
  53. ,version:"1.2.5"}, warn)
  54. t.same(warnings, expect)
  55. warnings.length = 0
  56. var expect =
  57. [ warningMessages.missingDescription,
  58. warningMessages.missingRepository,
  59. typoMessage("bugs['web']", "bugs['url']"),
  60. typoMessage("bugs['name']", "bugs['url']"),
  61. warningMessages.nonUrlBugsUrlField,
  62. warningMessages.emptyNormalizedBugs,
  63. warningMessages.missingReadme,
  64. warningMessages.missingLicense]
  65. normalize({name:"name"
  66. ,version:"1.2.5"
  67. ,bugs:{web:"url",name:"url"}}, warn)
  68. t.same(warnings, expect)
  69. warnings.length = 0
  70. var expect =
  71. [ warningMessages.missingDescription,
  72. warningMessages.missingRepository,
  73. warningMessages.missingReadme,
  74. warningMessages.missingLicense,
  75. typoMessage('script', 'scripts') ]
  76. normalize({name:"name"
  77. ,version:"1.2.5"
  78. ,script:{server:"start",tests:"test"}}, warn)
  79. t.same(warnings, expect)
  80. warnings.length = 0
  81. expect =
  82. [ warningMessages.missingDescription,
  83. warningMessages.missingRepository,
  84. typoMessage("scripts['server']", "scripts['start']"),
  85. typoMessage("scripts['tests']", "scripts['test']"),
  86. warningMessages.missingReadme,
  87. warningMessages.missingLicense]
  88. normalize({name:"name"
  89. ,version:"1.2.5"
  90. ,scripts:{server:"start",tests:"test"}}, warn)
  91. t.same(warnings, expect)
  92. warnings.length = 0
  93. expect =
  94. [ warningMessages.missingDescription,
  95. warningMessages.missingRepository,
  96. warningMessages.missingReadme,
  97. warningMessages.missingLicense]
  98. normalize({name:"name"
  99. ,version:"1.2.5"
  100. ,scripts:{server:"start",tests:"test"
  101. ,start:"start",test:"test"}}, warn)
  102. t.same(warnings, expect)
  103. warnings.length = 0
  104. expect = []
  105. normalize({private: true
  106. ,name:"name"
  107. ,version:"1.2.5"
  108. ,scripts:{server:"start",tests:"test"}}, warn)
  109. t.same(warnings, expect)
  110. t.end();
  111. })