]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/ignore-shrinkwrap.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / test / tap / ignore-shrinkwrap.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 rimraf = require('rimraf')
7 var test = require('tap').test
8
9 var common = require('../common-tap.js')
10
11 var pkg = require('path').join(__dirname, 'ignore-shrinkwrap')
12
13 var EXEC_OPTS = { cwd: pkg }
14
15 var customMocks = {
16   'get': {
17     '/package.js': [200, { ente: true }],
18     '/shrinkwrap.js': [200, { ente: true }]
19   }
20 }
21
22 var json = {
23   author: 'Rocko Artischocko',
24   name: 'ignore-shrinkwrap',
25   version: '0.0.0',
26   dependencies: {
27     'npm-test-ignore-shrinkwrap-file': 'http://localhost:1337/package.js'
28   }
29 }
30
31 var shrinkwrap = {
32   name: 'ignore-shrinkwrap',
33   version: '0.0.0',
34   dependencies: {
35     'npm-test-ignore-shrinkwrap-file': {
36       version: '1.2.3',
37       from: 'http://localhost:1337/shrinkwrap.js',
38       resolved: 'http://localhost:1337/shrinkwrap.js',
39       dependencies: {
40         opener: {
41           version: '1.3.0',
42           from: 'opener@1.3.0'
43         }
44       }
45     }
46   }
47 }
48
49 test('setup', function (t) {
50   setup()
51   t.end()
52 })
53
54 test('npm install --no-shrinkwrap', function (t) {
55   mr({ port: common.port, mocks: customMocks }, function (err, s) {
56     t.ifError(err, 'mock registry bootstrapped without issue')
57     s._server.on('request', function (req) {
58       switch (req.url) {
59         case '/shrinkwrap.js':
60           t.fail('npm-shrinkwrap.json used instead of package.json')
61           break
62         case '/package.js':
63           t.pass('package.json used')
64       }
65     })
66
67     common.npm(
68       [
69         '--registry', common.registry,
70         '--loglevel', 'silent',
71         'install', '--no-shrinkwrap'
72       ],
73       EXEC_OPTS,
74       function (err, code) {
75         t.ifError(err, 'npm ran without issue')
76         t.ok(code, "install isn't going to succeed")
77         s.close()
78         t.end()
79       }
80     )
81   })
82 })
83
84 test('npm install (with shrinkwrap)', function (t) {
85   mr({ port: common.port, mocks: customMocks }, function (err, s) {
86     t.ifError(err, 'mock registry bootstrapped without issue')
87     s._server.on('request', function (req) {
88       switch (req.url) {
89         case '/shrinkwrap.js':
90           t.pass('shrinkwrap used')
91           break
92         case '/package.js':
93           t.fail('shrinkwrap ignored')
94       }
95     })
96
97     common.npm(
98       [
99         '--registry', common.registry,
100         '--loglevel', 'silent',
101         'install'
102       ],
103       EXEC_OPTS,
104       function (err, code) {
105         t.ifError(err, 'npm ran without issue')
106         t.ok(code, "install isn't going to succeed")
107         s.close()
108         t.end()
109       }
110     )
111   })
112 })
113
114 test('cleanup', function (t) {
115   cleanup()
116   t.end()
117 })
118
119 function cleanup () {
120   rimraf.sync(pkg)
121 }
122
123 function setup () {
124   cleanup()
125   mkdirp.sync(pkg)
126   fs.writeFileSync(
127     path.join(pkg, 'package.json'),
128     JSON.stringify(json, null, 2)
129   )
130   fs.writeFileSync(
131     path.join(pkg, 'npm-shrinkwrap.json'),
132     JSON.stringify(shrinkwrap, null, 2)
133   )
134   process.chdir(pkg)
135 }