var fs = require("fs") var path = require("path") var mkdirp = require("mkdirp") var mr = require("npm-registry-mock") var rimraf = require("rimraf") var test = require("tap").test var common = require("../common-tap.js") var pkg = path.resolve(__dirname, "logout") var outfile = path.join(pkg, "_npmrc") var opts = { cwd: pkg } var contents = function () {/* foo=boo //localhost:1337/:_authToken=glarb */}.toString().split("\n").slice(1, -1).join("\n") function mocks (server) { server.delete("/-/user/token/glarb") .reply(200, {}) } test("setup", function (t) { cleanup() setup() t.end() }) test("npm logout", function (t) { mr({ port: common.port, plugin: mocks }, function (err, s) { if (err) throw err common.npm( [ "logout", "--registry", common.registry, "--loglevel", "silent", "--userconfig", outfile ], opts, function (err, code) { t.ifError(err, "no error output") t.notOk(code, "exited OK") var config = fs.readFileSync(outfile, "utf8") t.equal(config, "foo=boo\n", "creds gone") s.close() t.end() }) }) }) test("cleanup", function (t) { cleanup() t.end() }) function setup () { mkdirp.sync(pkg) fs.writeFileSync(outfile, contents) } function cleanup () { rimraf.sync(pkg) }