| 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() | 
 | }) |