UNPKG

1.74 kBJavaScriptView Raw
1var valid = require("..")
2var test = require("tap").test
3var path = require("path")
4var fs = require("fs")
5
6test("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})