]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/install-with-dev-dep-duplicate.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / test / tap / install-with-dev-dep-duplicate.js
1 var fs = require('graceful-fs')
2 var path = require('path')
3
4 var mkdirp = require('mkdirp')
5 var mr = require('npm-registry-mock')
6 var osenv = require('osenv')
7 var rimraf = require('rimraf')
8 var test = require('tap').test
9
10 var common = require('../common-tap.js')
11 var npm = npm = require('../../')
12
13 var pkg = path.resolve(__dirname, 'dev-dep-duplicate')
14
15 var json = {
16   author: 'Anders Janmyr',
17   name: 'dev-dep-duplicate',
18   version: '0.0.0',
19   dependencies: {
20     underscore: '1.5.1'
21   },
22   devDependencies: {
23     underscore: '1.3.1'
24   }
25 }
26
27 var expected = {
28   name: 'dev-dep-duplicate',
29   version: '0.0.0',
30   dependencies: {
31     underscore: {
32       version: '1.5.1',
33       from: 'underscore@1.5.1',
34       resolved: common.registry + '/underscore/-/underscore-1.5.1.tgz'
35     }
36   }
37 }
38
39 test('prefers version from dependencies over devDependencies', function (t) {
40   t.plan(1)
41
42   mr({ port: common.port }, function (er, s) {
43     setup(function (err) {
44       if (err) return t.fail(err)
45
46       npm.install('.', function (err) {
47         if (err) return t.fail(err)
48
49         npm.commands.ls([], true, function (err, _, results) {
50           if (err) return t.fail(err)
51
52           t.deepEqual(results, expected)
53           s.close()
54           t.end()
55         })
56       })
57     })
58   })
59 })
60
61 test('cleanup', function (t) {
62   cleanup()
63   t.end()
64 })
65
66 function setup (cb) {
67   cleanup()
68   mkdirp.sync(pkg)
69   fs.writeFileSync(
70     path.join(pkg, 'package.json'),
71     JSON.stringify(json, null, 2)
72   )
73   process.chdir(pkg)
74
75   var opts = {
76     cache: path.resolve(pkg, 'cache'),
77     registry: common.registry
78   }
79   npm.load(opts, cb)
80 }
81
82 function cleanup () {
83   process.chdir(osenv.tmpdir())
84   rimraf.sync(pkg)
85 }