| // if "npm init" is interrupted with ^C, don't report |
| // "init written successfully" |
| var test = require("tap").test |
| var path = require("path") |
| var osenv = require("osenv") |
| var rimraf = require("rimraf") |
| var npmlog = require("npmlog") |
| var requireInject = require("require-inject") |
| |
| var npm = require("../../lib/npm.js") |
| |
| var PKG_DIR = path.resolve(__dirname, "init-interrupt") |
| |
| test("setup", function (t) { |
| cleanup() |
| |
| t.end() |
| }) |
| |
| test("issue #6684 remove confusing message", function (t) { |
| |
| var initJsonMock = function (dir, input, config, cb) { |
| process.nextTick(function () { |
| cb({message : "canceled"}) |
| }) |
| } |
| initJsonMock.yes = function () { return true } |
| |
| npm.load({loglevel : "silent"}, function () { |
| var log = "" |
| var init = requireInject("../../lib/init", { |
| "init-package-json": initJsonMock |
| }) |
| |
| // capture log messages |
| npmlog.on("log", function (chunk) { log += chunk.message + "\n" } ) |
| |
| init([], function (err, code) { |
| t.ifError(err, "init ran successfully") |
| t.notOk(code, "exited without issue") |
| t.notSimilar(log, /written successfully/, "no success message written") |
| t.similar(log, /canceled/, "alerted that init was canceled") |
| |
| t.end() |
| }) |
| }) |
| }) |
| |
| test("cleanup", function (t) { |
| cleanup() |
| |
| t.end() |
| }) |
| |
| function cleanup () { |
| process.chdir(osenv.tmpdir()) |
| rimraf.sync(PKG_DIR) |
| } |