var fs = require('graceful-fs') var http = require('http') var path = require('path') var mkdirp = require('mkdirp') var osenv = require('osenv') var rimraf = require('rimraf') var test = require('tap').test var pkg = path.join(__dirname, 'npm-test-unpublish-config') var fixturePath = path.join(pkg, 'fixture_npmrc') var common = require('../common-tap.js') var json = { name: 'npm-test-unpublish-config', version: '1.2.3', publishConfig: { registry: common.registry } } test('setup', function (t) { mkdirp.sync(pkg) fs.writeFileSync( path.join(pkg, 'package.json'), JSON.stringify(json), 'utf8' ) fs.writeFileSync( fixturePath, '//localhost:1337/:_authToken = beeeeeeeeeeeeef\n' + 'registry = http://lvh.me:4321/registry/path\n' ) t.end() }) test('cursory test of unpublishing with config', function (t) { var child t.plan(4) http.createServer(function (req, res) { t.pass('got request on the fakey fake registry') this.close() res.statusCode = 500 res.end(JSON.stringify({ error: 'shh no tears, only dreams now' })) child.kill('SIGHUP') }).listen(common.port, function () { t.pass('server is listening') child = common.npm( [ '--userconfig', fixturePath, '--loglevel', 'silent', '--force', 'unpublish' ], { cwd: pkg, stdio: 'inherit', env: { 'npm_config_cache_lock_stale': 1000, 'npm_config_cache_lock_wait': 1000, HOME: process.env.HOME, Path: process.env.PATH, PATH: process.env.PATH, USERPROFILE: osenv.home() } }, function (err, code) { t.ifError(err, 'publish command finished successfully') t.notOk(code, 'npm install exited with code 0') } ) }) }) test('cleanup', function (t) { process.chdir(osenv.tmpdir()) rimraf.sync(pkg) t.end() })