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