fs: check for symlink support in fs-promises test

Attempting to make symlinks as a non-administrator user in Windows
causes a permission error. We need to update test-fs-promises to avoid
making symlinks if the platform does not support it.

PR-URL: https://github.com/nodejs/node/pull/19018
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Shingo Inoue <leko.noor@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
This commit is contained in:
Seth Brenith 2018-02-26 13:06:12 -08:00 committed by Leko
parent 67b5985c08
commit 96b2d8d3dc

View File

@ -116,21 +116,24 @@ function verifyStatObject(stat) {
stats = await stat(newPath);
verifyStatObject(stats);
const newLink = path.resolve(tmpDir, 'baz3.js');
await symlink(newPath, newLink);
if (common.canCreateSymLink()) {
const newLink = path.resolve(tmpDir, 'baz3.js');
await symlink(newPath, newLink);
stats = await lstat(newLink);
verifyStatObject(stats);
assert.strictEqual(newPath.toLowerCase(),
(await realpath(newLink)).toLowerCase());
assert.strictEqual(newPath.toLowerCase(),
(await readlink(newLink)).toLowerCase());
await unlink(newLink);
}
const newLink2 = path.resolve(tmpDir, 'baz4.js');
await link(newPath, newLink2);
stats = await lstat(newLink);
verifyStatObject(stats);
assert.strictEqual(newPath.toLowerCase(),
(await realpath(newLink)).toLowerCase());
assert.strictEqual(newPath.toLowerCase(),
(await readlink(newLink)).toLowerCase());
await unlink(newLink);
await unlink(newLink2);
const newdir = path.resolve(tmpDir, 'dir');