diff options
Diffstat (limited to 'node_modules/read-package-tree/test/symlinked-node-modules.js')
-rw-r--r-- | node_modules/read-package-tree/test/symlinked-node-modules.js | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/node_modules/read-package-tree/test/symlinked-node-modules.js b/node_modules/read-package-tree/test/symlinked-node-modules.js new file mode 100644 index 000000000..31149240b --- /dev/null +++ b/node_modules/read-package-tree/test/symlinked-node-modules.js @@ -0,0 +1,70 @@ +'use strict' +var path = require('path') +var test = require('tap').test +var rpt = require('../rpt.js') +var Tacks = require('tacks') +var File = Tacks.File +var Symlink = Tacks.Symlink +var Dir = Tacks.Dir + +var workdir = path.join(__dirname, path.basename(__filename, '.js')) +var fixture = new Tacks(Dir({ + bar: Dir({ + 'package.json': File({ + name: 'bar', + version: '1.0.0' + }) + }), + 'linked-node-modules': Dir({ + bar: Symlink('../bar'), + foo: Dir({ + 'package.json': File({ + name: 'foo', + version: '1.0.0' + }) + }) + }), + example: Dir({ + node_modules: Symlink('../linked-node-modules/'), + 'package.json': File({ + name: 'example', + version: '1.0.0', + }) + }) +})) + +function setup () { + cleanup() + fixture.create(workdir) +} + +function cleanup () { + fixture.remove(workdir) +} + +test('setup', function (t) { + setup() + t.done() +}) +test('symlinked-node-modules', function (t) { + rpt(path.join(workdir, 'example'), function (err, tree) { + t.ifError(err) + t.is(tree.children.length, 2) + var childrenShouldBe = { + 'foo': {isLink: false}, + 'bar': {isLink: true} + } + tree.children.forEach(function (child) { + var name = child.package.name + t.is(child.isLink, childrenShouldBe[name].isLink, + 'is' + (childrenShouldBe[name].isLink ? '' : 'Not') + 'Link ' + + path.relative(workdir, child.path) + " + " + + path.relative(workdir, child.realpath)) + }) + t.done() + }) +}) +test('cleanup', function (t) { + cleanup() + t.done() +})
\ No newline at end of file |