var fs = require("fs") var path = require("path") var mkdirp = require("mkdirp") var rimraf = require("rimraf") var test = require("tap").test var common = require("../common-tap.js") var pkg = path.resolve(__dirname, "npm-global-edit") var editorSrc = function () {/* #!/usr/bin/env node var fs = require("fs") if (fs.existsSync(process.argv[2])) { console.log("success") } else { console.log("error") process.exit(1) } */}.toString().split("\n").slice(1, -1).join("\n") var editorPath = path.join(pkg, "editor") test("setup", function (t) { cleanup(function (er) { t.ifError(er, "old directory removed") mkdirp(pkg, "0777", function (er) { fs.writeFileSync(editorPath, editorSrc) fs.chmodSync(editorPath, "0777") t.ifError(er, "created package directory correctly") t.end() }) }) }) test("saving configs", function (t) { var opts = { cwd: pkg, env: { PATH: process.env.PATH, EDITOR: editorPath } } common.npm( [ "config", "--prefix", pkg, "--global", "edit" ], opts, function (err, code, stdout, stderr) { t.ifError(err, "command ran without issue") t.equal(stderr, "", "got nothing on stderr") t.equal(code, 0, "exit ok") t.equal(stdout, "success\n", "got success message") t.end() } ) }) test("cleanup", function (t) { cleanup(function (er) { t.ifError(er, "test directory removed OK") t.end() }) }) function cleanup (cb) { rimraf(pkg, cb) }