]> 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-preferglobal-warnings.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-preferglobal-warnings.js
1 var fs = require('graceful-fs')
2 var path = require('path')
3
4 var mkdirp = require('mkdirp')
5 var osenv = require('osenv')
6 var rimraf = require('rimraf')
7 var test = require('tap').test
8
9 var common = require('../common-tap.js')
10
11 var preferGlobalJson = {
12   name: 'npm-test-preferglobal-dep',
13   version: '0.0.0',
14   preferGlobal: true
15 }
16
17 var dependenciesJson = {
18   name: 'npm-test-preferglobal-dependency-check',
19   version: '0.0.0',
20   dependencies: {
21     'npm-test-preferglobal-dep': 'file:../' + preferGlobalJson.name
22   }
23 }
24
25 var devDependenciesJson = {
26   name: 'npm-test-preferglobal-devDependency-check',
27   version: '0.0.0',
28   devDependencies: {
29     'npm-test-preferglobal-dep': 'file:../' + preferGlobalJson.name
30   }
31 }
32
33 var emptyPackage = {
34   name: 'npm-test-preferglobal-empty-package',
35   version: '0.0.0'
36 }
37
38 test('install a preferGlobal dependency without warning', function (t) {
39   setup(dependenciesJson)
40   common.npm([
41     'install',
42     '--loglevel=warn'
43   ], {}, function (err, code, stdout, stderr) {
44     t.ifError(err, 'packages were installed')
45     t.notMatch(
46       stderr,
47       /WARN.*prefer global/,
48       'install should not warn when dependency is preferGlobal')
49     t.end()
50   })
51 })
52
53 test('install a preferGlobal dependency without warning', function (t) {
54   setup(devDependenciesJson)
55   common.npm([
56     'install',
57     '--loglevel=warn'
58   ], {}, function (err, code, stdout, stderr) {
59     t.ifError(err, 'packages were installed')
60     t.notMatch(
61       stderr,
62       /WARN.*prefer global/,
63       'install should not warn when devDependency is preferGlobal')
64     t.end()
65   })
66 })
67
68 test('warn if a preferGlobal package is being installed direct', function (t) {
69   setup(emptyPackage)
70   common.npm([
71     'install',
72     'file:../' + preferGlobalJson.name,
73     '--loglevel=warn'
74   ], {}, function (err, code, stdout, stderr) {
75     t.ifError(err, 'packages were installed')
76     t.match(
77       stderr,
78       /WARN.*prefer global/,
79       'install should warn when new package is preferGlobal')
80     t.end()
81   })
82 })
83
84 test('warn if a preferGlobal package is being saved', function (t) {
85   setup(emptyPackage)
86   common.npm([
87     'install',
88     'file:../' + preferGlobalJson.name,
89     '--save',
90     '--loglevel=warn'
91   ], {}, function (err, code, stdout, stderr) {
92     t.ifError(err, 'packages were installed')
93     t.match(
94       stderr,
95       /WARN.*prefer global/,
96       'install should warn when new package is preferGlobal')
97     t.end()
98   })
99 })
100
101 test('cleanup', function (t) {
102   cleanup()
103   t.end()
104 })
105
106 function setup (json) {
107   cleanup()
108   mkPkg(preferGlobalJson)
109   process.chdir(mkPkg(json))
110 }
111
112 function cleanup () {
113   process.chdir(osenv.tmpdir())
114   var pkgs = [preferGlobalJson,
115               dependenciesJson,
116               devDependenciesJson,
117               emptyPackage]
118   pkgs.forEach(function (json) {
119     rimraf.sync(path.resolve(__dirname, json.name))
120   })
121 }
122
123 function mkPkg (json) {
124   var pkgPath = path.resolve(__dirname, json.name)
125   mkdirp.sync(pkgPath)
126   fs.writeFileSync(
127     path.join(pkgPath, 'package.json'),
128     JSON.stringify(json, null, 2)
129   )
130   return pkgPath
131 }