var mr = require("npm-registry-mock") var test = require("tap").test var common = require("../common-tap.js") var server var EXEC_OPTS = {} var jashkenas = { name : "jashkenas", email : "jashkenas@gmail.com" } var othiym23 = { name : "othiym23", email : "forrest@npmjs.com" } var bcoe = { name : "bcoe", email : "ben@npmjs.com" } function shrt (user) { return user.name+" <"+user.email+">\n" } function mocks (server) { server.get("/-/user/org.couchdb.user:othiym23") .many().reply(200, othiym23) // test 1 server.get("/underscore") .reply(200, {_id:"underscore",_rev:1,maintainers:[jashkenas]}) server.put( "/underscore/-rev/1", {_id:"underscore",_rev:1,maintainers:[jashkenas,othiym23]}, {} ).reply(200, {_id:"underscore",_rev:2,maintainers:[jashkenas,othiym23]}) // test 2 server.get("/@xxx%2fscoped") .reply(200, {_id:"@xxx/scoped",_rev:1,maintainers:[bcoe]}) server.put( "/@xxx%2fscoped/-rev/1", {_id:"@xxx/scoped",_rev:1,maintainers:[bcoe,othiym23]}, {} ).reply(200, {_id:"@xxx/scoped",_rev:2,maintainers:[bcoe,othiym23]}) // test 3 server.get("/underscore") .reply(200, {_id:"underscore",_rev:2,maintainers:[jashkenas,othiym23]}) // test 4 server.get("/underscore") .reply(200, {_id:"underscore",_rev:2,maintainers:[jashkenas,othiym23]}) server.put( "/underscore/-rev/2", {_id:"underscore",_rev:2,maintainers:[jashkenas]}, {} ).reply(200, {_id:"underscore",_rev:3,maintainers:[jashkenas]}) } test("setup", function (t) { common.npm( [ "--loglevel", "silent", "cache", "clean" ], EXEC_OPTS, function (err, code) { t.ifError(err, "npm cache clean ran without error") t.notOk(code, "npm cache clean exited cleanly") mr({ port : common.port, plugin : mocks }, function (err, s) { server = s t.end() }) } ) }) test("npm owner add", function (t) { common.npm( [ "--loglevel", "silent", "--registry", common.registry, "owner", "add", "othiym23", "underscore" ], EXEC_OPTS, function (err, code, stdout, stderr) { t.ifError(err, "npm owner add ran without error") t.notOk(code, "npm owner add exited cleanly") t.notOk(stderr, "npm owner add ran silently") t.equal(stdout, "+ othiym23 (underscore)\n", "got expected add output") t.end() } ) }) test("npm owner add (scoped)", function (t) { common.npm( [ "--loglevel", "silent", "--registry", common.registry, "owner", "add", "othiym23", "@xxx/scoped" ], EXEC_OPTS, function (err, code, stdout, stderr) { t.ifError(err, "npm owner add (scoped) ran without error") t.notOk(code, "npm owner add (scoped) exited cleanly") t.notOk(stderr, "npm owner add (scoped) ran silently") t.equal(stdout, "+ othiym23 (@xxx/scoped)\n", "got expected scoped add output") t.end() } ) }) test("npm owner ls", function (t) { common.npm( [ "--loglevel", "silent", "--registry", common.registry, "owner", "ls", "underscore" ], EXEC_OPTS, function (err, code, stdout, stderr) { t.ifError(err, "npm owner ls ran without error") t.notOk(code, "npm owner ls exited cleanly") t.notOk(stderr, "npm owner ls ran silently") t.equal(stdout, shrt(jashkenas)+shrt(othiym23), "got expected ls output") t.end() } ) }) test("npm owner rm", function (t) { common.npm( [ "--loglevel", "silent", "--registry", common.registry, "owner", "rm", "othiym23", "underscore" ], EXEC_OPTS, function (err, code, stdout, stderr) { t.ifError(err, "npm owner rm ran without error") t.notOk(code, "npm owner rm exited cleanly") t.notOk(stderr, "npm owner rm ran silently") t.equal(stdout, "- othiym23 (underscore)\n", "got expected rm output") t.end() } ) }) test("cleanup", function (t) { server.close() t.end() })