// 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) }