diff options
author | Bryan English <bryan@bryanenglish.com> | 2015-08-01 03:15:13 +0300 |
---|---|---|
committer | Rebecca Turner <me@re-becca.org> | 2015-08-12 09:28:41 +0300 |
commit | 493552bb53ffe827119bf2e2fbe18fe574b40ad1 (patch) | |
tree | 5a59c4762bff7d050ef78cbc020470670bad11c7 /test | |
parent | 2cbe412bbe920f6927ca45a8f842d4cbd3525eaf (diff) |
shrinkwrap: Add support for --also=dev[elopment]
PR-URL: https://github.com/npm/npm/pull/9024
Diffstat (limited to 'test')
-rw-r--r-- | test/tap/shrinkwrap-prod-dependency-also.js | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/test/tap/shrinkwrap-prod-dependency-also.js b/test/tap/shrinkwrap-prod-dependency-also.js new file mode 100644 index 000000000..5bcae6d2f --- /dev/null +++ b/test/tap/shrinkwrap-prod-dependency-also.js @@ -0,0 +1,93 @@ +var fs = require('fs') +var path = require('path') + +var mkdirp = require('mkdirp') +var mr = require('npm-registry-mock') +var osenv = require('osenv') +var rimraf = require('rimraf') +var test = require('tap').test + +var npm = npm = require('../../') + +var common = require('../common-tap.js') +var pkg = path.resolve(__dirname, 'shrinkwrap-prod-dependency') + +test("shrinkwrap --also=development doesn't strip out prod dependencies", function (t) { + t.plan(1) + + mr({port: common.port}, function (er, s) { + setup({}, function (err) { + if (err) return t.fail(err) + + npm.install('.', function (err) { + if (err) return t.fail(err) + + npm.config.set('also', 'development') + npm.commands.shrinkwrap([], true, function (err, results) { + if (err) return t.fail(err) + + t.deepEqual(results, desired) + s.close() + t.end() + }) + }) + }) + }) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) + +var desired = { + name: 'npm-test-shrinkwrap-prod-dependency', + version: '0.0.0', + dependencies: { + request: { + version: '0.9.0', + from: 'request@0.9.0', + resolved: common.registry + '/request/-/request-0.9.0.tgz' + }, + underscore: { + version: '1.5.1', + from: 'underscore@1.5.1', + resolved: common.registry + '/underscore/-/underscore-1.5.1.tgz' + } + } +} + +var json = { + author: 'Domenic Denicola', + name: 'npm-test-shrinkwrap-prod-dependency', + version: '0.0.0', + dependencies: { + request: '0.9.0' + }, + devDependencies: { + underscore: '1.5.1' + } +} + +function setup (opts, cb) { + cleanup() + mkdirp.sync(pkg) + fs.writeFileSync(path.join(pkg, 'package.json'), JSON.stringify(json, null, 2)) + process.chdir(pkg) + + var allOpts = { + cache: path.resolve(pkg, 'cache'), + registry: common.registry + } + + for (var key in opts) { + allOpts[key] = opts[key] + } + + npm.load(allOpts, cb) +} + +function cleanup () { + process.chdir(osenv.tmpdir()) + rimraf.sync(pkg) +} |