1 | var test = require('tap').test
|
2 | var path = require('path')
|
3 | var fs = require('fs')
|
4 | var mkdirp = require('mkdirp')
|
5 | var rimraf = require('rimraf')
|
6 | var readInstalled = require('../')
|
7 |
|
8 | var root = path.resolve(__dirname, 'root')
|
9 | var pkg = path.resolve(root, 'pkg')
|
10 | var pkgnm = path.resolve(pkg, 'node_modules')
|
11 | var linkdepSrc = path.resolve(root, 'linkdep')
|
12 | var linkdepLink = path.resolve(pkgnm, 'linkdep')
|
13 | var devdep = path.resolve(linkdepSrc, 'node_modules', 'devdep')
|
14 |
|
15 | function pjson (dir, data) {
|
16 | mkdirp.sync(dir)
|
17 | var d = path.resolve(dir, 'package.json')
|
18 | fs.writeFileSync(d, JSON.stringify(data))
|
19 | }
|
20 |
|
21 | test('setup', function (t) {
|
22 | rimraf.sync(root)
|
23 | pjson(pkg, {
|
24 | name: 'root',
|
25 | version: '1.2.3',
|
26 | dependencies: {
|
27 | linkdep: ''
|
28 | }
|
29 | })
|
30 | pjson(linkdepSrc, {
|
31 | name: 'linkdep',
|
32 | version: '1.2.3',
|
33 | devDependencies: {
|
34 | devdep: ''
|
35 | }
|
36 | })
|
37 | pjson(devdep, {
|
38 | name: 'devdep',
|
39 | version: '1.2.3'
|
40 | })
|
41 |
|
42 | mkdirp.sync(pkgnm)
|
43 | fs.symlinkSync(linkdepSrc, linkdepLink, 'dir')
|
44 |
|
45 | t.end()
|
46 | })
|
47 |
|
48 | test('basic', function (t) {
|
49 | readInstalled(pkg, { dev: true }, function (er, data) {
|
50 | var dd = data.dependencies.linkdep.dependencies.devdep
|
51 | t.notOk(dd.extraneous, 'linked dev dep should not be extraneous')
|
52 | t.end()
|
53 | })
|
54 | })
|
55 |
|
56 | test('cleanup', function (t) {
|
57 | rimraf.sync(root)
|
58 | t.end()
|
59 | })
|