diff options
Diffstat (limited to 'deps/npm/test/tap/noargs-install-config-save.js')
-rw-r--r-- | deps/npm/test/tap/noargs-install-config-save.js | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/deps/npm/test/tap/noargs-install-config-save.js b/deps/npm/test/tap/noargs-install-config-save.js new file mode 100644 index 000000000..840caf9f5 --- /dev/null +++ b/deps/npm/test/tap/noargs-install-config-save.js @@ -0,0 +1,86 @@ +var test = require("tap").test +var npm = require.resolve("../../bin/npm-cli.js") +var osenv = require("osenv") +var path = require("path") +var http = require("http") +var fs = require("fs") +var rimraf = require("rimraf") +var mkdirp = require('mkdirp') + +var server, child +var spawn = require("child_process").spawn +var node = process.execPath + +var pkg = process.env.npm_config_tmp || '/tmp' +pkg += path.sep + 'noargs-install-config-save' + +function writePackageJson() { + rimraf.sync(pkg) + mkdirp.sync(pkg) + + fs.writeFileSync(pkg + '/package.json', JSON.stringify({ + "author": "Rocko Artischocko", + "name": "noargs", + "version": "0.0.0", + "devDependencies": { + "underscore": "1.3.0" + } + }), 'utf8') +} + +function createChild (args) { + var env = { + npm_config_save: true, + npm_config_registry: "http://localhost:1337", + HOME: process.env.HOME, + Path: process.env.PATH, + PATH: process.env.PATH + } + + if (process.platform === "win32") + env.npm_config_cache = "%APPDATA%\\npm-cache" + + return spawn(node, args, { + cwd: pkg, + stdio: "inherit", + env: env + }) +} + +test("does not update the package.json with empty arguments", function (t) { + writePackageJson() + t.plan(1) + server = http.createServer(function (req, res) { + res.setHeader("content-type", "application/javascript") + res.statusCode = 200 + res.end(JSON.stringify(require("./fixtures/underscore-1-3-3.json"))) + child.on("close", function (m) { + var text = JSON.stringify(fs.readFileSync(pkg + "/package.json", "utf8")) + t.ok(text.indexOf('"dependencies') === -1) + t.end() + }) + this.close() + }) + server.listen(1337, function() { + child = createChild([npm, "install"]) + }) +}) + +test("updates the package.json (adds dependencies) with an argument", function (t) { + writePackageJson() + t.plan(1) + server = http.createServer(function (req, res) { + res.setHeader("content-type", "application/javascript") + res.statusCode = 200 + res.end(JSON.stringify(require("./fixtures/underscore.json"))) + child.on("close", function (m) { + var text = JSON.stringify(fs.readFileSync(pkg + "/package.json", "utf8")) + t.ok(text.indexOf('"dependencies') !== -1) + t.end() + }) + this.close() + }) + server.listen(1337, function () { + child = createChild([npm, "install", "underscore"]) + }) +}) |