Skip to content

Commit 08b040a

Browse files
Dmitriy Kuznetsovljharb
authored andcommitted
[Tests] add failing symlink tests
1 parent 2c3bcae commit 08b040a

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = 'bar';
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"main": "bar.js"
3+
}

test/symlinks.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ var test = require('tape');
44
var resolve = require('../');
55

66
var symlinkDir = path.join(__dirname, 'resolver', 'symlinked', 'symlink');
7+
var packageDir = path.join(__dirname, 'resolver', 'symlinked', '_', 'node_modules', 'package');
78
try {
89
fs.unlinkSync(symlinkDir);
910
} catch (err) {}
@@ -13,6 +14,12 @@ try {
1314
// if fails then it is probably on Windows and lets try to create a junction
1415
fs.symlinkSync(path.join(__dirname, 'resolver', 'symlinked', '_', 'symlink_target') + '\\', symlinkDir, 'junction');
1516
}
17+
try {
18+
fs.symlinkSync('../../package', packageDir, 'dir');
19+
} catch (err) {
20+
// if fails then it is probably on Windows and lets try to create a junction
21+
fs.symlinkSync(path.join(__dirname, '..', '..', 'package') + '\\', packageDir, 'junction');
22+
}
1623

1724
test('symlink', function (t) {
1825
t.plan(2);
@@ -54,3 +61,21 @@ test('sync symlink when preserveSymlinks = true', function (t) {
5461
}, /Cannot find module 'foo'/);
5562
t.end();
5663
});
64+
65+
test('sync symlink from node_modules to other dir when preserveSymlinks = false', function (t) {
66+
var basedir = path.join(__dirname, 'resolver', 'symlinked', '_');
67+
var fn = resolve.sync('package', { basedir: basedir, preserveSymlinks: false });
68+
69+
t.equal(fn, path.resolve(__dirname, 'resolver/symlinked/package/bar.js'));
70+
t.end();
71+
});
72+
73+
test('async symlink from node_modules to other dir when preserveSymlinks = false', function (t) {
74+
t.plan(2);
75+
var basedir = path.join(__dirname, 'resolver', 'symlinked', '_');
76+
resolve('package', { basedir: basedir, preserveSymlinks: false }, function (err, result) {
77+
t.notOk(err, 'no error');
78+
t.equal(result, path.resolve(__dirname, 'resolver/symlinked/package/bar.js'));
79+
t.end();
80+
});
81+
});

0 commit comments

Comments
 (0)