diff options
Diffstat (limited to 'deps/npm/test/tap/install-duplicate-deps-warning.js')
-rw-r--r-- | deps/npm/test/tap/install-duplicate-deps-warning.js | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/deps/npm/test/tap/install-duplicate-deps-warning.js b/deps/npm/test/tap/install-duplicate-deps-warning.js new file mode 100644 index 0000000000..9206fe253c --- /dev/null +++ b/deps/npm/test/tap/install-duplicate-deps-warning.js @@ -0,0 +1,69 @@ +var fs = require('graceful-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 common = require('../common-tap.js') +var npm = npm = require('../../') + +var pkg = path.resolve(__dirname, path.basename(__filename, '.js')) + +var json = { + dependencies: { + underscore: '1.5.1' + }, + devDependencies: { + underscore: '1.3.1' + } +} + +test('setup', function (t) { + t.comment('test for https://github.com/npm/npm/issues/6725') + cleanup() + mkdirp.sync(pkg) + fs.writeFileSync( + path.join(pkg, 'package.json'), + JSON.stringify(json, null, 2) + ) + process.chdir(pkg) + console.dir(pkg) + t.end() +}) + +test('npm install with duplicate dependencies, different versions', function (t) { + t.plan(1) + mr({ port: common.port }, function (er, s) { + var opts = { + cache: path.resolve(pkg, 'cache'), + registry: common.registry + } + + npm.load(opts, function (err) { + if (err) return t.fail(err) + + npm.install('.', function (err, additions, result) { + if (err) return t.fail(err) + + var invalid = result.warnings.filter(function (warning) { return warning.code === 'EDUPLICATEDEP' }) + t.is(invalid.length, 1, 'got a warning (EDUPLICATEDEP) for duplicate dev/production dependencies') + + s.close() + t.end() + }) + }) + }) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) + +function cleanup () { + process.chdir(osenv.tmpdir()) + rimraf.sync(pkg) +} |