PageRenderTime 43ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/node_modules/npm-user-validate/test/username.test.js

http://github.com/isaacs/npm
JavaScript | 42 lines | 36 code | 6 blank | 0 comment | 0 complexity | 2e639d580a67452d4ffd0ddf008e0515 MD5 | raw file
Possible License(s): Unlicense, LGPL-2.0, 0BSD, JSON, MIT, BSD-3-Clause, WTFPL, Apache-2.0, CC-BY-SA-3.0
  1. var test = require('tap').test
  2. var v = require('../npm-user-validate.js').username
  3. test('username must be lowercase', function (t) {
  4. var err = v('ERRR')
  5. t.type(err, 'object')
  6. t.match(err.message, /lowercase/)
  7. t.end()
  8. })
  9. test('username may not contain non-url-safe chars', function (t) {
  10. var err = v('f ')
  11. t.type(err, 'object')
  12. t.match(err.message, /url-safe/)
  13. t.end()
  14. })
  15. test('username may not start with "."', function (t) {
  16. var err = v('.username')
  17. t.type(err, 'object')
  18. t.match(err.message, /start with.*\./)
  19. t.end()
  20. })
  21. test('username may not be longer than 214 characters', function (t) {
  22. var err = v('bacon-ipsum-dolor-amet-tongue-short-loin-landjaeger-tenderloin-ball-tip-pork-loin-porchetta-pig-pork-chop-beef-ribs-pork-belly--shankle-t-bone-turducken-tongue-landjaeger-pork-loin-beef-chicken-short-loin-and-pickle')
  23. t.type(err, 'object')
  24. t.match(err.message, /less than or equal to 214/)
  25. t.end()
  26. });
  27. test('username may be as long as 214 characters', function (t) {
  28. var err = v('bacon-ipsum-dolor-amet-tongue-short-loin-landjaeger-tenderloin-ball-tip-pork-loin-porchetta-pig-pork-chop-beef-ribs-pork-belly--shankle-t-bone-turducken-tongue-landjaeger-pork-loin-beef-chicken-short-loin-porchetta')
  29. t.type(err, 'null')
  30. t.end()
  31. });
  32. test('username is ok', function (t) {
  33. var err = v('ente')
  34. t.type(err, 'null')
  35. t.end()
  36. })