1 | var valid = require("..")
|
2 | var test = require("tap").test
|
3 | var path = require("path")
|
4 | var fs = require("fs")
|
5 |
|
6 | test("validate-npm-package-name", function (t) {
|
7 | t.deepEqual(valid("some-package"), {valid: true})
|
8 | t.deepEqual(valid("example.com"), {valid: true})
|
9 | t.deepEqual(valid("CAPITAL-LETTERS"), {valid: true})
|
10 | t.deepEqual(valid("under_score"), {valid: true})
|
11 | t.deepEqual(valid("period.js"), {valid: true})
|
12 | t.deepEqual(valid("123numeric"), {valid: true})
|
13 | t.deepEqual(valid("crazy!"), {valid: true})
|
14 | t.deepEqual(valid("@npm/thingy"), {valid: true})
|
15 | t.deepEqual(valid("@npm-zors/money!time.js"), {valid: true})
|
16 |
|
17 | t.deepEqual(valid(""), {
|
18 | valid: false,
|
19 | errors: ["name length must be greater than zero"]})
|
20 |
|
21 | t.deepEqual(valid(".start-with-period"), {
|
22 | valid: false,
|
23 | errors: ["name cannot start with a period"]})
|
24 |
|
25 | t.deepEqual(valid("_start-with-underscore"), {
|
26 | valid: false,
|
27 | errors: ["name cannot start with an underscore"]})
|
28 |
|
29 | t.deepEqual(valid("contain:colons"), {
|
30 | valid: false,
|
31 | errors: ["name can only contain URL-friendly characters"]})
|
32 |
|
33 | t.deepEqual(valid("1234567890123456789012345678901234567890-more-than-fifty"), {
|
34 | valid: false,
|
35 | errors: ["name cannot be longer than 50 characters"]})
|
36 |
|
37 | t.deepEqual(valid(" leading-space"), {
|
38 | valid: false,
|
39 | errors: ["name cannot contain leading or trailing spaces", "name can only contain URL-friendly characters"]})
|
40 |
|
41 | t.deepEqual(valid("trailing-space "), {
|
42 | valid: false,
|
43 | errors: ["name cannot contain leading or trailing spaces", "name can only contain URL-friendly characters"]})
|
44 |
|
45 | t.deepEqual(valid("s/l/a/s/h/e/s"), {
|
46 | valid: false,
|
47 | errors: ["name can only contain URL-friendly characters"]})
|
48 |
|
49 | t.end()
|
50 | })
|