summaryrefslogtreecommitdiff
path: root/deps/npm/test/tap/access.js
blob: aa97b1a203f833f8351fefb5ccf1b4a3e6eef77c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
var fs = require("fs")
var path = require("path")
var mkdirp = require("mkdirp")
var rimraf = require("rimraf")
var mr = require("npm-registry-mock")

var test = require("tap").test
var common = require("../common-tap.js")

var pkg = path.resolve(__dirname, "access")
var server

var scoped = {
  name : "@scoped/pkg",
  version : "1.1.1"
}

var body = {
  access : "public"
}

function mocks (server) {
  server.post("/-/package/@scoped%2fpkg/access", JSON.stringify(body))
    .reply(200, { "access" : "public" })
  server.post("/-/package/@scoped%2fanother/access", JSON.stringify(body))
    .reply(200, { "access" : "public" })
}

test("setup", function (t) {
  mkdirp(pkg, function (er) {
    t.ifError(er, pkg + " made successfully")

    mr({port : common.port, plugin : mocks}, function (err, s) {
      server = s

      fs.writeFile(
        path.join(pkg, "package.json"),
        JSON.stringify(scoped),
        function (er) {
          t.ifError(er, "wrote package.json")
          t.end()
        }
      )
    })
  })
})

test("npm access on current package", function (t) {
  common.npm(
    [
      "access",
      "public",
      "--registry", common.registry,
      "--loglevel", "silent"
    ],
    { cwd : pkg },
    function (er, code, stdout, stderr) {
      t.ifError(er, "npm access")
      t.notOk(code, "exited OK")
      t.notOk(stderr, "no error output")

      t.end()
    }
  )
})

test("npm access on named package", function (t) {
  common.npm(
    [
      "access",
      "public", "@scoped/another",
      "--registry", common.registry,
      "--loglevel", "silent"
    ],
    { cwd : pkg },
    function (er, code, stdout, stderr) {
      t.ifError(er, "npm access")
      t.notOk(code, "exited OK")
      t.notOk(stderr, "no error output")

      t.end()
    }
  )
})

test("cleanup", function (t) {
  t.pass("cleaned up")
  rimraf.sync(pkg)
  server.close()
  t.end()
})