summaryrefslogtreecommitdiff
path: root/deps/node/deps/npm/node_modules/read-installed/test/linked-dep-dev-deps-extraneous.js
blob: 656051330456e727abec573d100c7f39358251af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
var test = require('tap').test
var path = require('path')
var fs = require('fs')
var mkdirp = require('mkdirp')
var rimraf = require('rimraf')
var readInstalled = require('../')

var root = path.resolve(__dirname, 'root')
var pkg = path.resolve(root, 'pkg')
var pkgnm = path.resolve(pkg, 'node_modules')
var linkdepSrc = path.resolve(root, 'linkdep')
var linkdepLink = path.resolve(pkgnm, 'linkdep')
var devdep = path.resolve(linkdepSrc, 'node_modules', 'devdep')

function pjson (dir, data) {
  mkdirp.sync(dir)
  var d = path.resolve(dir, 'package.json')
  fs.writeFileSync(d, JSON.stringify(data))
}

test('setup', function (t) {
  rimraf.sync(root)
  pjson(pkg, {
    name: 'root',
    version: '1.2.3',
    dependencies: {
      linkdep: ''
    }
  })
  pjson(linkdepSrc, {
    name: 'linkdep',
    version: '1.2.3',
    devDependencies: {
      devdep: ''
    }
  })
  pjson(devdep, {
    name: 'devdep',
    version: '1.2.3'
  })

  mkdirp.sync(pkgnm)
  fs.symlinkSync(linkdepSrc, linkdepLink, 'dir')

  t.end()
})

test('basic', function (t) {
  readInstalled(pkg, { dev: true }, function (er, data) {
    var dd = data.dependencies.linkdep.dependencies.devdep
    t.notOk(dd.extraneous, 'linked dev dep should not be extraneous')
    t.end()
  })
})

test('cleanup', function (t) {
  rimraf.sync(root)
  t.end()
})