var common = require('../common-tap.js') var test = require('tap').test var path = require('path') var fs = require('fs') var rimraf = require('rimraf') var mkdirp = require('mkdirp') var mr = require("npm-registry-mock") var pkg = path.resolve(process.env.npm_config_tmp || '/tmp', 'noargs-install-config-save') function writePackageJson() { rimraf.sync(pkg) mkdirp.sync(pkg) mkdirp.sync(pkg + "/cache") fs.writeFileSync(pkg + "/package.json", JSON.stringify({ "author": "Rocko Artischocko", "name": "noargs", "version": "0.0.0", "devDependencies": { "underscore": "1.3.1" } }), "utf8") } var env = { 'npm_config_save': true, 'npm_config_registry': common.registry, 'npm_config_cache': pkg + '/cache', HOME: process.env.HOME, Path: process.env.PATH, PATH: process.env.PATH } var OPTS = { cwd: pkg, env: env } test("does not update the package.json with empty arguments", function (t) { writePackageJson() t.plan(2) mr({ port: common.port }, function (er, s) { common.npm('install', OPTS, function (er, code, stdout, stderr) { if (er) throw er t.is(code, 0) if (code !== 0) { console.error('#', stdout) console.error('#', stderr) } var text = JSON.stringify(fs.readFileSync(pkg + '/package.json', 'utf8')) s.close() t.ok(text.indexOf("\"dependencies") === -1) }) }) }) test("updates the package.json (adds dependencies) with an argument", function (t) { writePackageJson() t.plan(2) mr({ port: common.port }, function (er, s) { common.npm(['install', 'underscore'], OPTS, function (er, code, stdout, stderr) { if (er) throw er t.is(code, 0) s.close() var text = JSON.stringify(fs.readFileSync(pkg + "/package.json", "utf8")) t.ok(text.indexOf("\"dependencies") !== -1) }) }) }) test("cleanup", function (t) { rimraf.sync(pkg + "/cache") t.end() })