diff options
Diffstat (limited to 'deps/npm/test/tap/shrinkwrap-shared-dev-dependency.js')
-rw-r--r-- | deps/npm/test/tap/shrinkwrap-shared-dev-dependency.js | 104 |
1 files changed, 51 insertions, 53 deletions
diff --git a/deps/npm/test/tap/shrinkwrap-shared-dev-dependency.js b/deps/npm/test/tap/shrinkwrap-shared-dev-dependency.js index 0011f7b6f1..71e6371bcf 100644 --- a/deps/npm/test/tap/shrinkwrap-shared-dev-dependency.js +++ b/deps/npm/test/tap/shrinkwrap-shared-dev-dependency.js @@ -3,89 +3,87 @@ 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 common = require('../common-tap.js') -var npm = npm = require('../../') -var pkg = path.resolve(__dirname, 'shrinkwrap-shared-dev-dependency') +var pkg = path.resolve(__dirname, path.basename(__filename, '.js')) -test("shrinkwrap doesn't strip out the shared dependency", 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('dev', true) // npm install unsets this +var opts = { + env: common.newEnv().extend({ + npm_config_cache: path.resolve(pkg, 'cache'), + npm_config_registry: common.registry + }), + stdio: [0, 1, 2], + cwd: pkg +} - npm.commands.shrinkwrap([], true, function (err, results) { - if (err) return t.fail(err) +var json = { + author: 'Domenic Denicola', + name: 'npm-test-shrinkwrap-shared-dev-dependency', + version: '0.0.0', + dependencies: { + 'test-package-with-one-dep': '0.0.0' + }, + devDependencies: { + 'test-package': '0.0.0' + } +} - t.deepEqual(results, desired) - s.close() - t.end() - }) - }) - }) +var server +test('setup', function (t) { + setup() + mr({ port: common.port }, function (er, s) { + if (er) throw er + server = s + t.done() }) }) -test('cleanup', function (t) { - cleanup() - t.end() -}) - var desired = { name: 'npm-test-shrinkwrap-shared-dev-dependency', version: '0.0.0', dependencies: { 'test-package-with-one-dep': { version: '0.0.0', - from: 'test-package-with-one-dep@0.0.0', - resolved: common.registry + - '/test-package-with-one-dep/-/test-package-with-one-dep-0.0.0.tgz' + resolved: common.registry + '/test-package-with-one-dep/-/test-package-with-one-dep-0.0.0.tgz', + integrity: 'sha1-JWwVltusKyPRImjatagCuy42Wsg=' }, 'test-package': { version: '0.0.0', - from: 'test-package@0.0.0', - resolved: common.registry + '/test-package/-/test-package-0.0.0.tgz' + resolved: common.registry + '/test-package/-/test-package-0.0.0.tgz', + integrity: 'sha1-sNMrbEXCWcV4uiADdisgUTG9+9E=' } } } -var json = { - author: 'Domenic Denicola', - name: 'npm-test-shrinkwrap-shared-dev-dependency', - version: '0.0.0', - dependencies: { - 'test-package-with-one-dep': '0.0.0' - }, - devDependencies: { - 'test-package': '0.0.0' - } -} +test("shrinkwrap doesn't strip out the shared dependency", function (t) { + t.plan(3) + + return common.npm(['install'], opts).spread((code) => { + t.is(code, 0, 'install') + return common.npm(['shrinkwrap'], opts) + }).spread((code) => { + t.is(code, 0, 'shrinkwrap') + var results = JSON.parse(fs.readFileSync(`${pkg}/npm-shrinkwrap.json`)) + t.deepEqual(results.dependencies, desired.dependencies) + t.end() + }) +}) -function setup (cb) { +test('cleanup', function (t) { + server.close() + cleanup() + t.end() +}) + +function setup () { cleanup() mkdirp.sync(pkg) fs.writeFileSync(path.join(pkg, 'package.json'), JSON.stringify(json, null, 2)) - process.chdir(pkg) - - var opts = { - cache: path.resolve(pkg, 'cache'), - registry: common.registry, - // important to make sure devDependencies don't get stripped - dev: true - } - npm.load(opts, cb) } function cleanup () { - process.chdir(osenv.tmpdir()) rimraf.sync(pkg) } |