2 var path = require("path")
3 var mkdirp = require("mkdirp")
4 var rimraf = require("rimraf")
5 var mr = require("npm-registry-mock")
7 var test = require("tap").test
8 var common = require("../common-tap.js")
10 var pkg = path.resolve(__dirname, "dist-tag")
18 function mocks (server) {
20 server.get("/-/package/@scoped%2fpkg/dist-tags")
21 .reply(200, { latest : "1.0.0", a : "0.0.1", b : "0.5.0" })
24 server.get("/-/package/@scoped%2fanother/dist-tags")
25 .reply(200, { latest : "2.0.0", a : "0.0.2", b : "0.6.0" })
28 server.get("/-/package/@scoped%2fanother/dist-tags")
29 .reply(200, { latest : "2.0.0", a : "0.0.2", b : "0.6.0" })
30 server.put("/-/package/@scoped%2fanother/dist-tags/c", "\"7.7.7\"")
31 .reply(200, { latest : "7.7.7", a : "0.0.2", b : "0.6.0", c : "7.7.7" })
34 server.get("/-/package/@scoped%2fanother/dist-tags")
35 .reply(200, { latest : "2.0.0", b : "0.6.0" })
38 server.get("/-/package/@scoped%2fanother/dist-tags")
39 .reply(200, { latest : "2.0.0", a : "0.0.2", b : "0.6.0", c : "7.7.7" })
40 server.delete("/-/package/@scoped%2fanother/dist-tags/c")
41 .reply(200, { c : "7.7.7" })
44 server.get("/-/package/@scoped%2fanother/dist-tags")
45 .reply(200, { latest : "4.0.0" })
48 test("setup", function (t) {
49 mkdirp(pkg, function (er) {
50 t.ifError(er, pkg + " made successfully")
52 mr({port : common.port, plugin : mocks}, function (er, s) {
56 path.join(pkg, "package.json"),
57 JSON.stringify(scoped),
59 t.ifError(er, "wrote package.json")
67 test("npm dist-tags ls in current package", function (t) {
71 "--registry", common.registry,
72 "--loglevel", "silent"
75 function (er, code, stdout, stderr) {
76 t.ifError(er, "npm access")
77 t.notOk(code, "exited OK")
78 t.notOk(stderr, "no error output")
79 t.equal(stdout, "a: 0.0.1\nb: 0.5.0\nlatest: 1.0.0\n")
86 test("npm dist-tags ls on named package", function (t) {
90 "ls", "@scoped/another",
91 "--registry", common.registry,
92 "--loglevel", "silent"
95 function (er, code, stdout, stderr) {
96 t.ifError(er, "npm access")
97 t.notOk(code, "exited OK")
98 t.notOk(stderr, "no error output")
99 t.equal(stdout, "a: 0.0.2\nb: 0.6.0\nlatest: 2.0.0\n")
106 test("npm dist-tags add @scoped/another@7.7.7 c", function (t) {
110 "add", "@scoped/another@7.7.7", "c",
111 "--registry", common.registry,
112 "--loglevel", "silent"
115 function (er, code, stdout, stderr) {
116 t.ifError(er, "npm access")
117 t.notOk(code, "exited OK")
118 t.notOk(stderr, "no error output")
119 t.equal(stdout, "+c: @scoped/another@7.7.7\n")
126 test("npm dist-tags set same version", function (t) {
130 "set", "@scoped/another@0.6.0", "b",
131 "--registry", common.registry,
135 function (er, code, stdout, stderr) {
136 t.ifError(er, "npm access")
137 t.notOk(code, "exited OK")
140 "npm WARN dist-tag add b is already set to version 0.6.0\n",
141 "warned about setting same version"
143 t.notOk(stdout, "only expecting warning message")
150 test("npm dist-tags rm @scoped/another c", function (t) {
154 "rm", "@scoped/another", "c",
155 "--registry", common.registry,
156 "--loglevel", "silent"
159 function (er, code, stdout, stderr) {
160 t.ifError(er, "npm access")
161 t.notOk(code, "exited OK")
162 t.notOk(stderr, "no error output")
163 t.equal(stdout, "-c: @scoped/another@7.7.7\n")
170 test("npm dist-tags rm @scoped/another nonexistent", function (t) {
174 "rm", "@scoped/another", "nonexistent",
175 "--registry", common.registry,
176 "--loglevel", "silent"
179 function (er, code, stdout, stderr) {
180 t.ifError(er, "npm dist-tag")
181 t.ok(code, "expecting nonzero exit code")
182 t.notOk(stderr, "no error output")
183 t.notOk(stdout, "not expecting output")
190 test("cleanup", function (t) {