X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=org.simantics.maps.server%2Fnode%2Fnode-v4.8.0-win-x64%2Fnode_modules%2Fnpm%2Ftest%2Ftap%2Fdedupe-scoped.js;fp=org.simantics.maps.server%2Fnode%2Fnode-v4.8.0-win-x64%2Fnode_modules%2Fnpm%2Ftest%2Ftap%2Fdedupe-scoped.js;h=a093e1f8c064bf7ba9a1b3c52c4b7ee764281238;hb=2529be6d456deeb07c128603ce4971f1dc29b695;hp=0000000000000000000000000000000000000000;hpb=2636fc31c16c23711cf2b06a4ae8537bba9c1d35;p=simantics%2Fdistrict.git diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/dedupe-scoped.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/dedupe-scoped.js new file mode 100644 index 00000000..a093e1f8 --- /dev/null +++ b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/dedupe-scoped.js @@ -0,0 +1,147 @@ +var fs = require('fs') +var join = require('path').join + +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var test = require('tap').test + +var common = require('../common-tap.js') +var pkg = join(__dirname, 'dedupe-scoped') +var modules = join(pkg, 'node_modules') + +var EXEC_OPTS = { cwd: pkg } + +var prolog = 'dedupe@0.0.0 ' + pkg +var body = function () {/* +├─┬ first@1.0.0 +│ └── @scope/shared@2.1.6 +└─┬ second@2.0.0 + └── @scope/shared@2.1.6 +*/}.toString().split('\n').slice(1, -1) + +var deduper = { + 'name': 'dedupe', + 'version': '0.0.0', + 'dependencies': { + 'first': '1.0.0', + 'second': '2.0.0' + } +} + +var first = { + 'name': 'first', + 'version': '1.0.0', + 'dependencies': { + 'firstUnique': '0.6.0', + '@scope/shared': '2.1.6' + } +} + +var second = { + 'name': 'second', + 'version': '2.0.0', + 'dependencies': { + 'secondUnique': '1.2.0', + '@scope/shared': '2.1.6' + } +} + +var shared = { + 'name': '@scope/shared', + 'version': '2.1.6' +} + +var firstUnique = { + 'name': 'firstUnique', + 'version': '0.6.0' +} + +var secondUnique = { + 'name': 'secondUnique', + 'version': '1.2.0' +} + + +test('setup', function (t) { + setup() + t.end() +}) + +// we like the cars +function ltrimm (l) { return l.trim() } + +test('dedupe finds the common scoped modules and moves it up one level', function (t) { + common.npm( + [ + 'find-dupes' // I actually found a use for this command! + ], + EXEC_OPTS, + function (err, code, stdout, stderr) { + t.ifError(err, 'successful dry run against fake install') + t.notOk(code, 'npm ran without issue') + t.notOk(stderr, 'npm printed no errors') + t.same( + stdout.trim().split('\n').map(ltrimm), + [prolog].concat(body).map(ltrimm), + 'got expected output' + ) + + t.end() + } + ) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) + +function setup (cb) { + cleanup() + + mkdirp.sync(pkg) + fs.writeFileSync( + join(pkg, 'package.json'), + JSON.stringify(deduper, null, 2) + ) + + mkdirp.sync(join(modules, 'first')) + fs.writeFileSync( + join(modules, 'first', 'package.json'), + JSON.stringify(first, null, 2) + ) + + mkdirp.sync(join(modules, 'first', 'node_modules', 'firstUnique')) + fs.writeFileSync( + join(modules, 'first', 'node_modules', 'firstUnique', 'package.json'), + JSON.stringify(firstUnique, null, 2) + ) + + mkdirp.sync(join(modules, 'first', 'node_modules', '@scope', 'shared')) + fs.writeFileSync( + join(modules, 'first', 'node_modules', '@scope', 'shared', 'package.json'), + JSON.stringify(shared, null, 2) + ) + + mkdirp.sync(join(modules, 'second')) + fs.writeFileSync( + join(modules, 'second', 'package.json'), + JSON.stringify(second, null, 2) + ) + + mkdirp.sync(join(modules, 'second', 'node_modules', 'secondUnique')) + fs.writeFileSync( + join(modules, 'second', 'node_modules', 'secondUnique', 'package.json'), + JSON.stringify(secondUnique, null, 2) + ) + + mkdirp.sync(join(modules, 'second', 'node_modules', '@scope', 'shared')) + fs.writeFileSync( + join(modules, 'second', 'node_modules', '@scope', 'shared', 'package.json'), + JSON.stringify(shared, null, 2) + ) +} + +function cleanup () { + rimraf.sync(pkg) +}