]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/legacy-optional-deps.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / test / tap / legacy-optional-deps.js
1 'use strict'
2 var path = require('path')
3 var fs = require('fs')
4 var test = require('tap').test
5 var common = require('../common-tap.js')
6 var rimraf = require('rimraf')
7 var mkdirp = require('mkdirp')
8 var mr = require('npm-registry-mock')
9 var basepath = path.resolve(__dirname, path.basename(__filename, '.js'))
10 var fixturepath = path.resolve(basepath, 'npm-test-optional-deps')
11 var modulepath = path.resolve(basepath, 'node_modules')
12 var Tacks = require('tacks')
13 var File = Tacks.File
14 var Dir = Tacks.Dir
15
16 var fixture = new Tacks(
17   Dir({
18     README: File(
19       'just an npm test\n'
20     ),
21     'package.json': File({
22       name: 'npm-test-optional-deps',
23       version: '1.2.5',
24       optionalDependencies: {
25         'npm-test-foobarzaaakakaka': 'http://example.com/',
26         async: '10.999.14234',
27         mkdirp: '0.3.5',
28         optimist: 'some invalid version 99 #! $$ x y z',
29         'npm-test-failer': '*'
30       }
31     })
32   })
33 )
34
35 var server
36
37 test('setup', function (t) {
38   setup()
39   mr({port: common.port}, function (err, s) {
40     if (err) throw err
41     server = s
42     t.done()
43   })
44 })
45
46 test('optional-deps', function (t) {
47   server.get('/npm-test-failer').reply(404, {error: 'nope'})
48
49   var opts = ['--registry=' + common.registry, '--timeout=100']
50   common.npm(opts.concat(['install', fixturepath]), {cwd: basepath}, installCheckAndTest)
51
52   function installCheckAndTest (err, code, stdout, stderr) {
53     if (err) throw err
54     if (stderr) console.error(stderr)
55     server.done()
56     t.is(code, 0, 'install went ok')
57     var subpath = modulepath + '/npm-test-optional-deps/node_modules/'
58     var dir = fs.readdirSync(subpath)
59     t.isDeeply(dir, ['mkdirp'], 'only one optional dep should be there')
60     t.is(require(path.resolve(subpath, 'mkdirp', 'package.json')).version, '0.3.5', 'mkdirp version right')
61     t.done()
62   }
63 })
64
65 test('cleanup', function (t) {
66   cleanup()
67   server.close()
68   t.done()
69 })
70
71 function setup () {
72   cleanup()
73   fixture.create(fixturepath)
74   mkdirp.sync(modulepath)
75 }
76
77 function cleanup () {
78   fixture.remove(fixturepath)
79   rimraf.sync(basepath)
80 }